logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Dancer2::FileUtils - File utility helpers

Author

       Dancer Core Developers

Description

       Dancer2::FileUtils includes a few file related utilities that Dancer2 uses internally. Developers may use
       it instead of writing their own file reading subroutines or using additional modules.

Export

       Nothing by default. You can provide a list of subroutines to import.

Functions

my$path=path('folder','folder','filename');
       Provides comfortable path resolution, internally using File::Spec. 'path' does not verify paths, it just
       normalizes the path.

   my$path=path_or_empty('folder,'folder','filename');
       Like path, but returns '' if path doesn't exist.

   dirname
           use Dancer2::FileUtils 'dirname';

           my $dir = dirname($path);

       Exposes File::Basename's dirname, to allow fetching a directory name from a path. On most OS, returns all
       but last level of file path. See File::Basename for details.

   set_file_mode($fh);
           use Dancer2::FileUtils 'set_file_mode';

           set_file_mode($fh);

       Applies charset setting from Dancer2's configuration. Defaults to utf-8 if no charset setting.

   my$fh=open_file('<',$file)ordie$message;
           use Dancer2::FileUtils 'open_file';
           my $fh = open_file('<', $file) or die $message;

       Calls open and returns a filehandle. Takes in account the 'charset' setting from Dancer2's configuration
       to open the file in the proper encoding (or defaults to utf-8 if setting not present).

   my$content=read_file_content($file);
           use Dancer2::FileUtils 'read_file_content';

           my @content = read_file_content($file);
           my $content = read_file_content($file);

       Returns either the content of a file (whose filename is the input), or undef if the file could not be
       opened.

       In array context it returns each line (as defined by $/) as a separate element; in scalar context returns
       the entire contents of the file.

   my$content=read_glob_content($fh);
           use Dancer2::FileUtils 'read_glob_content';

           open my $fh, '<', $file or die "$!\n";
           binmode $fh, ':encoding(utf-8)';
           my @content = read_glob_content($fh);
           my $content = read_glob_content($fh);

       Similar to read_file_content, only it accepts a file handle. It is assumed that the appropriate PerlIO
       layers are applied to the file handle.  Returns the content and closesthefilehandle.

   my$norm_path=normalize_path($path);my$escaped_filename=escape_filename($filename);
       Escapes characters in a filename that may alter a path when concatenated.

         use Dancer2::FileUtils 'escape_filename';

         my $safe = escape_filename( "a/../b.txt" ); # a+2f+2e+2e+2fb+2etxt

Name

       Dancer2::FileUtils - File utility helpers

Synopsis

           use Dancer2::FileUtils qw/dirname path path_or_empty/;

           # for 'path/to/file'
           my $dir  = dirname($path); # returns 'path/to'
           my $path = path($path);    # returns '/abs/path/to/file'
           my $path = path_or_empty($path);    # returns '' if file doesn't exist

           use Dancer2::FileUtils qw/path read_file_content/;

           my $content = read_file_content( path( 'folder', 'folder', 'file' ) );
           my @content = read_file_content( path( 'folder', 'folder', 'file' ) );

           use Dancer2::FileUtils qw/read_glob_content set_file_mode/;

           open my $fh, '<', $file or die "$!\n";
           set_file_mode($fh);
           my @content = read_glob_content($fh);
           my $content = read_glob_content($fh);

           use Dancer2::FileUtils qw/open_file/;

           my $fh = open_file('<', $file) or die $message;

           use Dancer2::FileUtils 'set_file_mode';

           set_file_mode($fh);

Version

       version 1.1.2

See Also