ok does this s/^(?=E\d{5})/eject\t0,0,0\t\n/ while <>;
say...

from the beginning of the line match 0 or 1 E's with any digits then print 
the eject string?  I am not following the { 5 }. 
my E string is 6 characters long, so why the 5?

isn't there a insert regular expression?


use strict;
my $ejectapes = "/usr/local/bin/perld/exports"; 
open (ACSLS, "$ejectapes") || die "cannot open file ejectapes \n: $!";
while (defined($ejectapes = <>)) {
s/^(?=E\d{5})/eject \t0,0,0\t\n/
} 

close (ACSLS);



Derek B. Smith
OhioHealth IT
UNIX / TSM / EDM Teams






"John W. Krahn" <[EMAIL PROTECTED]>
05/25/2004 07:49 PM

 
        To:     [EMAIL PROTECTED]
        cc: 
        Subject:        Re: entering text within a file


[EMAIL PROTECTED] wrote:
> 
> All,

Hello,

> I am having some trouble figuring this out.  I want to enter some text
> within a pre-existing file.  Here is what the file would look like
> 
> E00140
> E00141
> E00143
> .
> .
> .
> 
> here is my code thus far
> 
> #!/usr/local/bin/perl -w
> use strict;
> my $ejectapes = "/usr/local/bin/perld/exports";
> open (ACSLS, "$ejectapes") || die "cannot open file ejectapes \n: $!";
> while (defined($ejectapes = <>)) {
> print "eject", "\t", "0,0,0", "\t", "\n", $_;
> close (ACSLS);
> }
> 
> I want to print eject 0,0,0 before the tapeid

You can either use Perl's "in-place" edit feature or use a second file
to write the data to.  Using in-place edit would look something like
this:

#!/usr/local/bin/perl -w
use strict;
( $^I, @ARGV ) = ( '', '/usr/local/bin/perld/exports' );

s/^(?=E\d{5})/eject\t0,0,0\t\n/ while <>;




John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Reply via email to