|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
|
Re: [PLUG] question re: perl diamond operator
|
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
|
|