in reply to What is better: Static input data in separate file or embedding static input data in code.
I always prefer to have separate data file, unless it's a test or something.
What I would do in your case, is default to a file name, but allow the user to specify an alternate at the command line if they don't want to use the default. Go ahead and try this code without an argument (ie. perl script.pl), then create a second valid file, and run it with the arg (eg: perl script.pl input2.txt). Then, send in an invalid file name. In this case, it'll use the default (input.txt) (eg: perl script.pl not_exist.txt):
use warnings; use strict; my $file = 'input.txt'; if (@ARGV){ if (! -e $ARGV[0]){ warn "$ARGV[0] is not a valid file, using default\n"; } else { $file = $ARGV[0]; } } open my $fh, '<', $file or die $!; while (<$fh>){ print; }
|
|---|