Perl question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Perl question
# 1  
Old 05-26-2005
Perl question

Hello Everybody,

I am using perl.....
I have a variable called line which stores the line of a file.
I dont know how many words there will be in this line.
But I would like to find out in perl and also store these words in the $1,$2,$3 and $4 variables eg if the line is

"first second third forth....."

then i would like to store it as follows

$1= first
$2= second
$3= third
$4= forth

and so on

How can i do this in perl?

Many thanks

Rkap


ps. initial attempt

$_ = $line;
if (/\s*([a-zA-Z1-9':''.']+)\s+([a-zA-Z1-9':''.']+)\s+([a-zA-Z1-9':''.']+)/){
print "\$1 is $1\n";
print "\$2 is $2\n";
print "\$3 is $3\n";
}

but this assumes there will always be 3 words in the line which is not true
# 2  
Old 05-26-2005
Tools

It's generally not in good taste to just ask for the answer, but to show or tell what you have done to try to solve the problem and then to ask for pointers. You have already done the first of these two things so I'll definitely give you a hint. In perl @arrays and %hashes as well as just about everything else is designed without limits. So if you are going to want to store an undefined number of elements into a usable variable, you might want to consider using a well designed &subroutine to break up the line into different elements and then store those elements into an @array. Then it will be fairly straight forward to pull those elements out and to store them as separate $string variables. There are of course many different ways to solve any one problem with perl, hence its beauty.

You might also want to try, either in lew of the afore-mentioned way or afterward just for fun, to incorporate a %hash instead. Something like
%word_on_line
where
$word_on_line{$1}="first"

see if this gets you any further I have some other ideas, but you should just see where this takes you for now. Make sure to post back what you some up with Smilie
# 3  
Old 05-26-2005
Why don't you use split()?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl question about

Hello everybody, I am new at the forum and a total newbie when it comes to Unix. I am trying to see how I can add the ability to kill a user's processes? I want to add this to my Shel Script Add the code/process into a subroutine. Also, I would like to use an array to store the list... (0 Replies)
Discussion started by: kinelisch
0 Replies

2. Shell Programming and Scripting

PERL Question ...

I am reading a file in perl script .. during the debug the $linein value is : linein : +ASM1,sys,||¬ |3Æqúoü;”ט|| from this line I am getting the tmepuser and password from above : ($tmpuser, $pwd) = ($linein =~ /^$server\s*,\s*(+)\s*,\|\|(.+)\|\|/sm); I am getting $tmpuser and... (2 Replies)
Discussion started by: talashil
2 Replies

3. Shell Programming and Scripting

another perl question

I have a question regarding bulding a hash from a file which has below pattern I thought I could write something like this but clearly my syntax is way off $/ = "\n\n"; $" = "\n"; open(FILE, file1) || die; my %keymaster = ( ); while (<FILE>) { my $topinfo =~... (5 Replies)
Discussion started by: hankooknara
5 Replies

4. Shell Programming and Scripting

another perl question

I fail to see how below answer is 1? can someone explain this for me? DB<3> $string = "The cat sat on the mat"; DB<4> $animal = ($string =~ m/The (.*) sat/); DB<5> print $animal; 1 (2 Replies)
Discussion started by: hankooknara
2 Replies

5. Shell Programming and Scripting

Perl question regarding [ ]

Below program, I do not get why item I am looking for is , instead of . When I do $#text, i get the right value for $value1, but when I do , i get somsething4, instead of somsethingxxxxxxxxxxxxxxxxxxx(which is what I am looking for. when I do , I get empty.. why? what did I do wrong? can you... (2 Replies)
Discussion started by: hankooknara
2 Replies

6. Shell Programming and Scripting

another perl question

I copy and paste from the book but this thing is not working. I cannot figure out what is wrong with myline 9.. can someone please tell me # cat ./sort4.pl #!/usr/bin/perl -w use strict; use warnings; my $input = shift; my $output = shift; open(IN, '<', $input) or die... (4 Replies)
Discussion started by: hankooknara
4 Replies

7. Shell Programming and Scripting

PERL question

Hello, pkzipc of a certain zip file yeilds the following in shell PKZIP(R) Version 6.0 FAST! Compression Utility for AIX Copyright 1989-2002 PKWARE Inc. All Rights Reserved. Registered Version PKZIP Reg. U.S. Pat. and Tm. Off. Patent No. 5,051,745 Viewing .ZIP: test.zip Length... (13 Replies)
Discussion started by: jerardfjay
13 Replies

8. Shell Programming and Scripting

perl question

If I use 2 system commands in a script, will one finish before the next one starts? or will it start the first and the second at the same time? i.e. system("ps | grep rminer"); system("ls -al | grep 431"); (1 Reply)
Discussion started by: BG_JrAdmin
1 Replies

9. Shell Programming and Scripting

Perl: tk question

When i run my perl/tk script, a perl window pops up behind the GUI window,, can this be hidden???? Also, can the Icon be changed, the Tk icon in every window??? (1 Reply)
Discussion started by: perleo
1 Replies

10. Shell Programming and Scripting

Question about Perl

Where can i find solid information about programming in Perl? Thank you in advance!!!:) (5 Replies)
Discussion started by: SolidSnake
5 Replies
Login or Register to Ask a Question