---Closing information gaps-----
Ranga Nathan, Reliance Technololgy
>>Live demo at http://any2xml.com/docs/timesheet_demo.shtml<<
>>Get free COBOLExplorer at http://goreliance.com/download-products <<
Opps ... $x instead of @x .. It worked so I did not notice it!!!
> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED]] On Behalf Of Ranga Nathan
> Sent: Thursday, September 26, 2002 11:26 AM
> To: [EMAIL PROTECTED]
> Subject: RE: [Boston.pm] $/ and pattern matching
> 
> 
> Eric:
> 
> YAW (Yet Another Way)...
> 
> #!/usr/bin/perl
> 
> my @x = join("",<STDIN>) || (join "",<DATA>);
> print join "",@x;
Opps, should have been a scalar $x instead of @x ....
my $x = join("",<STDIN>) || (join "",<DATA>);
print $x;
> __DATA__
> Sample daa
> input
> from 
> Program
> 
> However when run from command line, it asked for input. I had 
> to ^D immediately for the <DATA> to kickin.
> 
> ---Closing information gaps-----
> Ranga Nathan, Reliance Technololgy
> >>Live demo at http://any2xml.com/docs/timesheet_demo.shtml<<
> >>Get free COBOLExplorer at http://goreliance.com/download-products <<
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED]] On Behalf Of John Tobey
> > Sent: Tuesday, September 24, 2002 1:19 PM
> > To: Erik Price
> > Cc: [EMAIL PROTECTED]
> > Subject: Re: [Boston.pm] $/ and pattern matching
> > 
> > 
> > On Tue, Sep 24, 2002 at 12:15:08PM -0400, Erik Price wrote:
> > > 
> > > PS: I'm trying to think of an elegant and simple way to
> > read <STDIN>
> > > if
> > > there is any standard input and read <DATA> if not.  Yes, I
> > could just
> > > test for <STDIN> != "" or something and use "if"
> > statements, but that
> > > would basically mean repeating the same chunk of code with
> > a different
> > > file handle inside the <>.  Any good ideas that let me 
> just use the
> > > same block in either case?
> > 
> > You haven't said much about your problem, but you can use a
> > simple variable in <> such as:
> > 
> > $fh = is_there_any_standard_input() ? \*STDIN : \*DATA;
> > while (<$fh>) {
> >    ...
> > }
> > 
> > Or in one step (fails on old Perls):
> > 
> > while (readline(is_there_any_standard_input() ? \*STDIN : \*DATA)) {
> >    ...
> > }
> > 
> > You can't use angle brackets for expressions like this,
> > because Perl regards them as the glob() operator.  
> > readline($fh) is the same as <$fh>.
> > 
> > How you detect whether "there is any standard input" (or what
> > you mean by that) is another interesting question.  Here is 
> > one answer.
> > 
> > sub is_there_any_standard_input {
> >     return (-f(STDIN) || -p(STDIN)); # true if STDIN is a
> > file or pipe }
> > 
> > Hope this helps.
> > 
> > --
> > John Tobey <[EMAIL PROTECTED]>
> > \____^-^
> > _______________________________________________
> > Boston-pm mailing list
> > [EMAIL PROTECTED] http://mail.pm.org/mailman/listinfo/boston-pm
> > 
> 
> _______________________________________________
> Boston-pm mailing list
> [EMAIL PROTECTED]
> http://mail.pm.org/mailman/listinfo/boston-pm
> 

_______________________________________________
Boston-pm mailing list
[EMAIL PROTECTED]
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to