.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Badger::Filesystem::Base 3pm" .TH Badger::Filesystem::Base 3pm "2023-08-28" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Badger::Filesystem::Base \- common functionality for Badger::Filesystem modules .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& package Badger::Filesystem::SomeOtherModule; \& use base \*(AqBadger::Filesystem::Base\*(Aq \& # now this module inherits the base class functionality .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\f(CW\*(C`Badger::Filesystem::Base\*(C'\fR is a base class module that defines some common functionality shared by Badger::Filesystem and Badger::Filesystem::Path (which itself is the base class for Badger::Filesystem::Directory and Badger::Filesystem::File. .SH "METHODS" .IX Header "METHODS" .SS "init_path(\e%config)" .IX Subsection "init_path(%config)" Initialisation method which examines the filesystem path specified as a parameter and splits it into volume, directory and name. .SS "init_options(\e%config)" .IX Subsection "init_options(%config)" Initialisation method which handles the \f(CW\*(C`encoding\*(C'\fR and \f(CW\*(C`codec\*(C'\fR options. .SS "encoding($enc)" .IX Subsection "encoding($enc)" This method can be used to get or set the default encoding for a file. .PP .Vb 1 \& $file\->encoding(\*(Aq:utf8\*(Aq); .Ve .PP The encoding will affect all operations that read data from, or write data to the file. .PP The method can also be used to get or set the default encoding for a directory or filesystem. In this case the option specifies the default encoding for file contained therein. .PP .Vb 2 \& $directory\->encoding(\*(Aq:utf8\*(Aq); \& $file = $directory\->file(\*(Aqfoo.txt\*(Aq); # has :utf8 encoding set .Ve .SS "\fBcodec()\fP" .IX Subsection "codec()" This method can be used to get or set the codec used to serialise data to and from a file via the \fBdata()\fR method. The codec should be specified by name, using any of the names that Badger::Codecs recognises or can load. .PP .Vb 1 \& $file\->codec(\*(Aqstorable\*(Aq); \& \& # first save the data to file \& $file\->data($some_data_to_save); \& \& # later... load the data back out \& my $data = $file\->data; .Ve .PP You can use chained codec specifications if you want to pass the data through more than one codec. .PP .Vb 1 \& $file\->code(\*(Aqstorable+base64\*(Aq); .Ve .PP See Badger::Codecs for further information on codecs. .PP As with \fBencoding()\fR, this method can also be used to get or set the default codec for a directory or filesystem. .PP .Vb 2 \& $directory\->codec(\*(Aqjson\*(Aq); \& $file = $directory\->file(\*(Aqfoo.json\*(Aq); # has json codec set .Ve .SH "AUTHOR" .IX Header "AUTHOR" Andy Wardley .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (C) 2009 Andy Wardley. All rights reserved. .SH "SEE ALSO" .IX Header "SEE ALSO" Badger::Filesystem, Badger::Filesystem::Path, Badger::Filesystem::Directory, Badger::Filesystem::File.