ch13.010_best

来自「Perl Best Practices the source code」· 010_BEST 代码 · 共 71 行

010_BEST
71
字号
################################################################################   Code fragment (Recommended) from Chapter 13 of "Perl Best Practices"   ####     Copyright (c) O'Reilly & Associates, 2005. All Rights Reserved.      ####  See: http://www.oreilly.com/pub/a/oreilly/ask_tim/2001/codepolicy.html  ################################################################################# Standard modules...use strict;use warnings;use IO::Prompt;use Carp;use English qw( -no_match_vars );use Data::Alias;use Readonly;# Load subroutine to find and open a file by name# (Unfortunately, we're stuck with using the original version,#  which returns false on failure)# use Our::Corporate::File::Utilities qw( locate_and_open ); Readonly my @DATA_DIRS => ( '.' );# Find and open a file by name, returning the filehandle# or undef on failure...sub locate_and_open {    my ($filename) = @_;     # Check acceptable directories in order...    for my $dir (@DATA_DIRS) {        my $path = "$dir/$filename";         # If file exists in an acceptable directory, open and return it...        if (-r $path) {            open my $fh, '<', $path;             return $fh;        }    }     # Fail if all possible locations tried without success...    return;} # Load file contents up to the first <DATA/> marker...sub load_header_from {    my ($fh) = @_;     # Use DATA tag as end-of-"line"...    local $/ = '<DATA/>';     # Read to end-of-"line"...    return <$fh>;} # and later... my @source_files = ( 'ZZ2ZA' );# So change that unacceptable failure behaviour to throw exceptions instead...use Fatal qw( locate_and_open ); # and later... for my $filename  (@source_files) {    my $fh = locate_and_open($filename);   # Now throws exception on failure    my $head = load_header_from($fh);    print $head;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?