perl subroutine (SEC: UNCLASSIFIED)

Lisman, FLGOFF Jarrad Jarrad.Lisman at defence.gov.au
Thu Sep 26 09:00:12 EST 2002


Thanks for you suggestion.

I solved it by using a call to the subroutine like so;

	$line = &subroutine($line)

and in my subroutine I had to reference my variable as $_[0] not $_

Cheers

Jarrad

-----Original Message-----
From: Michael James [mailto:michael at james.st]
Sent: Thursday, 26 September 2002 1:02
To: Lisman, FLGOFF Jarrad
Subject: Re: perl subroutine (SEC: UNCLASSIFIED)


Dear Jarrad,

Here's a quick rewrite of your code:

open(OUT, "> newfile");
open(IN, "< filename");		# I re-use a lot of code and "IN" is nice
and generic
while(<IN>)			# a line is now in $_
{
	chomp;		# works on $_ by default
	$newline = subroutine($_);	# need to pick up the returned value
					# trailing() mark it as a subroutine
call

	print OUT $newline, "\n";
}

sub subroutine
{	my($line) = shift;	# pull the line off the parameter list

	$line =~ s/oldstring/newstring/;	# transform it
	# Note: if the target string is best identified by character
position
	#   then you were right to use substr()

	return($line);
}




Note that all the above is also achieved by

perl -pi.new -e's/oldstring/newstring/'


The Perl Cookbook (O'Reilly) is so good
 the question is not whether you need one copy
 but whether you need a second for bedtime reading.

michaelj
-- 
A right not exercised is a privilege
a privilege not exercised is illegal.

Michael James			michael at james.st
8 Brennan St			Phone: +61 2 6247 2556
Hackett, ACT 2602		Mobile: +61 4 1747 4065
AUSTRALIA			Fax: +61 2 6278 0011



More information about the linux mailing list