Provided by: libdancer2-perl_0.205002+dfsg-2_all bug

NAME

       Dancer2::FileUtils - File utility helpers

VERSION

       version 0.205002

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);

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.

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) or die $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 closes
       the file handle.

   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

EXPORT

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

AUTHOR

       Dancer Core Developers

COPYRIGHT AND LICENSE

       This software is copyright (c) 2017 by Alexis Sukrieh.

       This is free software; you can redistribute it and/or modify it under the same terms as
       the Perl 5 programming language system itself.