Edmond Rodriguez on 25 Jun 2009 16:11:28 -0700 |
Possibly meant this ( .... loop through....) #!/usr/bin/perl $missingFileFlag=0; foreach my $file (@ARGV) { if (! -f $file) { print "$file does not exist\n"; $missingFileFlag=1; } } exit 1 if ( $missingFileFlag ); while (<>) { chomp; print $_; } ----- Original Message ---- > From: Mark M. Hoffman <mhoffman@lightlink.com> > To: Philadelphia Linux User's Group Discussion List <plug@lists.phillylinux.org> > Sent: Thursday, June 25, 2009 3:07:34 PM > Subject: Re: [PLUG] question re: perl diamond operator > > Hi: > > * Paul W. Roach III [2009-06-25 14:23:22 -0400]: > > Yeah... > > * > > #!/usr/bin/perl > > * > > foreach my $file (@ARGV) { > > ** open(FILE, $file) || die "couldnt open file $file: $!\n"; > > ** chomp(my @lines = ); > > ** close(FILE); > > * > > ** print @lines; > > } > > Yes obviously... but then I lose the ability to (also) do this: > > $ some_command | ./example.pl > > I asked about the diamond operator, specifically, for good reason. > > > On Thu, Jun 25, 2009 at 1:14 PM, Morgan Jones <[1]morgan@morganjones.org> > > wrote: > > > > You could also loop through %ARGV and test each value. > > > > [2]http://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it > > -morgan > > > > On Jun 25, 2009, at 1:03 PM, Mark M. Hoffman wrote: > > > > > Hi: > > > > > > * Morgan Jones <[3]morgan@morganjones.org> [2009-06-25 12:47:38 > > -0400]: > > >> #! /usr/bin/perl -w > > >> > > >> if (! -f $ARGV[0]) { > > >> * * print "$ARGV[0] does not exist\n"; > > >> * * exit 1; > > >> } > > >> > > >> while (<>) { > > >> * * *chomp; > > >> * * *print $_; > > >> } > > > > > > Sure I could do that, but consider... > > > > > > * * * $ ./example.pl this_file_exists but_not_this_one > > > > > > It's a bit indirect, but I've solved it a completely different way. > > > I added > > > the following line near the top... it installs a warning handler > > > which just > > > converts all warnings into fatal errors. *Good enough for me. > > > > > > * * * local $SIG{__WARN__} = sub { die $_[0] }; > > > > > >> On Jun 25, 2009, at 12:24 PM, Mark M. Hoffman wrote: > > >> > > >>> Hi all: > > >>> > > >>> Given the following trivial script: > > >>> > > >>>>> #! /usr/bin/perl -w > > >>>>> > > >>>>> while (<>) { > > >>>>> * chomp; > > >>>>> * print $_; > > >>>>> } > > >>> > > >>> * * $ ./example.pl foo > > >>> * * Can't open foo: No such file or directory at ./example.pl line > > 3. > > >>> > > >>> So far so good; the file foo really does not exist. > > >>> > > >>> * * $ echo $? > > >>> * * 0 > > >>> > > >>> Really? *I want the exit status to be non-zero here. *I've looked > > >>> through the > > >>> perl documentation; I can't see any way to get the diamond operator > > >>> to do what > > >>> I want in this case. *I would appreciate any suggestions from perl > > >>> experts. > > > > > Regards, > > -- > Mark M. Hoffman > mhoffman@lightlink.com > > ___________________________________________________________________________ > Philadelphia Linux Users Group -- http://www.phillylinux.org > Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce > General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug ___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug
|
|