Piping and assigning output to a variable in Perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Piping and assigning output to a variable in Perl
# 8  
Old 05-13-2009
Hi,

I got this syntax msg when i do a syntax check.
Can anybody advise me on this error message ?

Code:
$ !!
perl -c testing
Name "main::ST_file" used only once: possible typo at testing line 35.
testing syntax OK

# 9  
Old 05-13-2009
Hi,

I just a simpler code to simulate the unix command, but how am i suppose to assign the string being printed out to a variable ?
Tried to use the below but it can't work.
Can any expert help ?

Code:
open(F, " ls -rt *$tester*st* | tail -1 | ") or die;
while (<F>) {
        my $ST_file = sprintf("%s",$_);
}
print "$ST_file\n";

# 10  
Old 05-13-2009
Hi ,

Through Try and Error , i finally found out the way to do it.
Can any expert explain why with " while ($line=<F>) ", it is able to work ?
But with " while (<F>) " , it is not able to work ?

Correct Code:
Code:
open(F, " ls -rt *$tester*st* | tail -1 | ") or die;
while ($line=<F>) {
        chomp;
        my $ST_file = sprintf("%s",$line);
}
close(F);
print "$ST_file\n";

Wrong Code:
Code:
open(F, " ls -rt *$tester*st* | tail -1 | ") or die;
while (<F>) {
        chomp;
        my $ST_file = sprintf("%s",$_);
}
close(F);
print "$ST_file\n";

# 11  
Old 05-13-2009
You have declared $ST_file in the wrong scope.:


Code:
my $ST_file; 
open(F, " ls -rt *$tester*st* | tail -1 | ") or die;
while (<F>) {
        chomp;
        $ST_file = $_;
}
close(F);
print "$ST_file\n";

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Assigning bc output to a variable

I'm converting decimal to integer with bc, and I'd like to assign the integer output from bc to a variable 'val'. E.g. In the code below: If b is 5000.000, lines 6 and 8 will output: 5000 (5000.000+0.5)/1 | bc I'd like val to take the value 5000 though, rather than 5000.000 Does someone... (3 Replies)
Discussion started by: pina
3 Replies

2. Shell Programming and Scripting

Oneliner ---split string to character by piping shell output to perl

Hello, I was trying to split a string to characters by perl oneliner. echo "The quick brown fox jumps over the lazy dog" | perl -e 'split // ' But did not work as with bash script pipe: echo "The quick brown fox jumps over the lazy dog" | fold -w1 | sort | uniq -ic 8 1 T 1... (6 Replies)
Discussion started by: yifangt
6 Replies

3. Shell Programming and Scripting

Assigning output from awk to variable

I have a script whose contents are as below result= awk 's=100 END {print s }' echo "The result is" $result The desired output is The result is 100 My script is running without exiting and i am also not getting the desired output. Please help (5 Replies)
Discussion started by: bk_12345
5 Replies

4. Shell Programming and Scripting

piping output from PHP file into variable

Hi. I have a script like so: #!/bin/bash download='php /var/www/last.php' echo $download if $downloadHow do I pipe the output of the php file into a variable, as when i run the if statement, it just echos the file output to the screen and does not actually consider the output (it will be... (2 Replies)
Discussion started by: daydreamer
2 Replies

5. Shell Programming and Scripting

assigning SED output to a variable = trouble!

i'm on a Mac running BSD unix. i have a script in which i ask the user to input the name of a mounted volume. i then call SED to substitute backslashes and spaces in place of the spaces. that looks like this: echo "Enter the name of the volume" read Volume echo "You've chosen \"$Volume\""... (7 Replies)
Discussion started by: hungryd
7 Replies

6. Shell Programming and Scripting

Assigning output of a command to variable

When I run time -p <command>, it outputs: real X.XX user X.XX sys X.XXwhere X.XX is seconds. How I can take just that first number output, the seconds of real time, and assign that to a variable? (9 Replies)
Discussion started by: jeriryan87
9 Replies

7. Shell Programming and Scripting

Assigning output to a variable

I am new to unix shell scripting. I was trying to convert each lines in a file to upper case. I know how to convert the whole file. But here i have to do line by line. I am getting it in the below mentioned script #!/bin/bash #converting lower to upper in a file #tr "" "" <file1... (3 Replies)
Discussion started by: jpmena
3 Replies

8. Shell Programming and Scripting

Assigning output of command to a variable in shell

hi, I want to assign find command result into some temporary variable: jarPath= find /opt/lotus/notes/ -name $jarFile cho "the jar path $jarPath" where jarPath is temporary variable. Can anybody help on this. Thanks in advance ----Sankar (6 Replies)
Discussion started by: sankar reddy
6 Replies

9. Shell Programming and Scripting

assigning nawk output to shell variable

Hello friends, I doing the follwing script , but found problem to store it to a shell variable. #! /bin/sh for temp in `find ./dat/vector/ -name '*.file'` do echo $temp nawk -v temp=$temp 'BEGIN{ split(temp, a,"\/"); print a}' done output: ./dat/vector/drf_all_002.file... (6 Replies)
Discussion started by: user_prady
6 Replies

10. Shell Programming and Scripting

Assigning output of command to a variable

Hi, I'm trying to assign the output of a command to a variable and then concat it with another string, however, it keeps overwriting the original string instead of adding on to the end of the string. Contents of test.txt --> This is a test var1="`head -n 1 test.txt`" echo $var1 (This is a... (5 Replies)
Discussion started by: oma04
5 Replies
Login or Register to Ask a Question