I know its possible to force perl to read the next file but have
forgotten how to do it.
The simple script below is supposed to read message files that are on
disk one message per file.
I want to go to the next file when the first blank line is seen.
I don't see how $cnt can equal one more than
you are not reading the files properly.
use 2 "while loops". the outer for traversing the
command line args while the inner for reading and
checking the file contents. use "break" in the inner
"while loop" when you get a blank line to go to the
outer "while loop".
cheers
--- Harry Putnam <[EMA
> use "break" in the inner
> "while loop" when you get a blank line to go to the
> outer "while loop".
I think you need to stop programming C. :)
'last' is the token you want to use for breaking out of a loop in perl.
George
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional comma
George Schlossnagle <[EMAIL PROTECTED]> writes:
> I think you need to stop programming C. :)
>
> 'last' is the token you want to use for breaking out of a loop in perl.
In the script I posted `last' used in place of next, doesn't work
like I wanted. It just stops the script on the first file.
> -Original Message-
> From: Harry Putnam [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, September 11, 2002 10:25 PM
> To: [EMAIL PROTECTED]
> Subject: go to next file
>
>
> I know its possible to force perl to read the next file but have
> forgotten how to do
Dharmender Rai <[EMAIL PROTECTED]> writes:
> you are not reading the files properly.
> use 2 "while loops". the outer for traversing the
> command line args while the inner for reading and
> checking the file contents. use "break" in the inner
> "while loop" when you get a blank line to go to the
Bob Showalter <[EMAIL PROTECTED]> writes:
[...]
>> cat test.pl
>> #!/usr/local/bin/perl -w
>>
>> $regex = shift;
>> while(<>){
>> $cnt++;
>> if($cnt == 1){
>>print "$ARGV\n";
>> }
>> if(/$regex/){
>>printf "%-3d %s", $cnt, $_;
>> }elsif(/^$/){
>>
Harry Putnam wrote:
> #!/usr/local/bin/perl -w
>
> $regex = shift;
> while(<>){
> $cnt++;
> if($cnt == 1){
>print "$ARGV\n";
> }
> if(/$regex/){
>printf "%-3d %s", $cnt, $_;
> }elsif(/^$/){
>$cnt = 0;
>next;
> }
> }
you are fe
david <[EMAIL PROTECTED]> writes:
> you are feeding reg directly to Perl from the user in 'if(/$regex/)' there
> is a chance that this will crash your program consider:
>
> #!/usr/bin/perl -w
> use strict;
>
> eval{
> while(){
> chop;
> /$_/o;
> }
Harry Putnam wrote:
>
> Excuse my skull bone density... not sure I follow this. Not sure I
> see how `chop' does anything to `\'
>
> [...]
>
assume your program is named scan.pl, what happen is you call it:
scan.pl '\'
your script always assume user will be entering a valid reg to use. i a
david <[EMAIL PROTECTED]> writes:
> Harry Putnam wrote:
>
>>
>> Excuse my skull bone density... not sure I follow this. Not sure I
>> see how `chop' does anything to `\'
>>
>> [...]
>>
>
> assume your program is named scan.pl, what happen is you call it:
>
> scan.pl '\'
It will wait for inpu
Harry Putnam wrote:
> david <[EMAIL PROTECTED]> writes:
>
> Won't is still quite even with the eval, in the above case?
>> passing it to Perl
>
> Can you give an example of this?
no it doesn't. if you put it inside an eval{}, it won't quit. consider:
#!/usr/bin/perl -w
use strict;
my $reg =
david <[EMAIL PROTECTED]> writes:
> Harry Putnam wrote:
>
>> david <[EMAIL PROTECTED]> writes:
>>
>> Won't is still quite even with the eval, in the above case?
>>> passing it to Perl
>>
>> Can you give an example of this?
>
> no it doesn't. if you put it inside an eval{}, it won't quit. consid
Harry Putnam wrote:
> david <[EMAIL PROTECTED]> writes:
>
>> Harry Putnam wrote:
>>
>>> david <[EMAIL PROTECTED]> writes:
>>>
>>> Won't is still quite even with the eval, in the above case?
passing it to Perl
>>>
>>> Can you give an example of this?
>>
>> no it doesn't. if you put it insi
On Thu, Sep 12, 2002 at 05:04:20PM -0700, Harry Putnam wrote:
> david <[EMAIL PROTECTED]> writes:
>
> I must be a real dunce, but I still don't get the point.
> If a bad regex is given, I want the program to stop.
>
> Your script above doesn't spit an error, it just fails and gives some
> other
15 matches
Mail list logo