Ktb wrote:
> 
> I have a file "test2" with the format of:
> 
> [Kent]
> Address:    3473278 jones
>             omaha, ne 65465
> Phone:      Home 8943, Work 83485, Cell 84853
> Email:      Home @jdddd.cor, Work
> Birthdate:  88484
> 
> [Pat]
> Address:    747474 street
>             where, CA 848484
> Phone:      Home 555-5555, Work 333-3333, Cell 222-22222
> Email:      Home [EMAIL PROTECTED], Work
> Birthdate:  8-4-4
> 
> I'm trying to delete in place a paragraph, if a name match is found.
> The following code does not work but I think it should:)  What am I
> doing wrong?
> 
> #!/usr/bin/perl
> use strict;
> use warnings;
> 
> open FILE, '+<test2' || die $!;
> chomp (my $name = <@ARGV>);

You are using the <> operator improperly here.  It can be used as either
readline() or glob() and in this context it is doing a file glob.

> $^I;
> $/ = "";
> while (<FILE>) {
>     if (/^\[$name/i) {
>         s/.//g;
>     }
> }

You have to have the file name in @ARGV and you have to set $^I to SOME
value for perl's in-place editing to work.


#!/usr/bin/perl
use strict;
use warnings;

my $name = shift;
@ARGV = 'test2';
$^I = '';
$/  = '';

while ( <> ) {
    next if /^\[$name/i;
    print;
}



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to