[Perl] Printing - Scalars


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting [Perl] Printing - Scalars
# 1  
Old 08-18-2009
[Perl] Printing - Scalars

Hey Guys,

I have some weird problem with printing scalars ...
When I'm executing script both are printing in terminal ...
But only one is printed to the file ?

I don't know whats going on .. Smilie

Btw .. I'm noobie Smilie took me lots of time to put this simple script together Smilie

Thank you in advance

Code:
#!/usr/bin/perl 


 open (FILE, ">data.txt"); 
 open (FILE2, ">data2.txt"); 

 $content = get("http://lcoalhost/test.html");
 die "Couldn't get it!" unless defined $content;

($plain_text = $content) =~ s/<[^>]*>//gs;    


 $mystringa = "$plain_text";
if($mystringa =~ m/Start(.*?)End/) {
    print $1;
}



 $mystringb = "$plain_text";
if($mystringb =~ m/Word(.*?)\(/) {
    print $2;
}


print "$1\n";
print "$2\n";

print FILE $1; 
print FILE $2; 
print FILE2 "$plain_text";


Last edited by NDxiak; 08-18-2009 at 03:18 PM..
# 2  
Old 08-18-2009
$1 and $2 are quite volatile variables, in the sense that they only start being defined after a regex with matching groups, and that they'll have a different value after the next one. Better save it to a new variable as soon as possible after the regex.

Aside from that, this is always a good idea at the beginning of your script:
Code:
#!/usr/bin/perl -W

use strict;
use warnings;

This will enable strict variable declaration (using my or our) and a few warnings that might turn into bugs down the road.
# 3  
Old 08-18-2009
Quote:
Originally Posted by pludi
$1 and $2 are quite volatile variables, in the sense that they only start being defined after a regex with matching groups, and that they'll have a different value after the next one. Better save it to a new variable as soon as possible after the regex.

Aside from that, this is always a good idea at the beginning of your script:
Code:
#!/usr/bin/perl -W

use strict;
use warnings;

This will enable strict variable declaration (using my or our) and a few warnings that might turn into bugs down the road.
Hey,

Thank you ...

Code:
Global symbol "$content" requires explicit package name at test2.pl line 10.
Global symbol "$content" requires explicit package name at test2.pl line 11.
Global symbol "$plain_text" requires explicit package name at test2.pl line 13.
Global symbol "$content" requires explicit package name at test2.pl line 13.
Global symbol "$mystringa" requires explicit package name at test2.pl line 16.
Global symbol "$plain_text" requires explicit package name at test2.pl line 16.
Global symbol "$mystringa" requires explicit package name at test2.pl line 17.
Global symbol "$mystringb" requires explicit package name at test2.pl line 23.
Global symbol "$plain_text" requires explicit package name at test2.pl line 23.
Global symbol "$mystringb" requires explicit package name at test2.pl line 24.
Global symbol "$plain_text" requires explicit package name at test2.pl line 34.

Not sure how to fix it ?
Could you please post some example of re saving variables

Thx
# 4  
Old 08-18-2009
Example 1: declaring variables
Code:
use strict;
my $var1 = "Test 1"; #Good
$var2 = "Test 2"; #This will fail

Example 2: saving variables
Code:
use strict;
my $string = "This is a test";
$string =~ m/ (..) /g;
my $save = $1;
print $save, "\n"; # Prints "is", followed by a newline

Also, there's a lot of documentation on perldoc.perl.org, including some where fine tutorials. All documentation there can also be found on your local system using the "perldoc" command.

HTH
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Printing a message in file without opening it in perl

Hello friends, i have a perl script as below ... for (0 ..$#values) { ##want to print some message here in Report.txt file print `find /abc/xyz/pqr/$values" -type f -ls` >> Report.txt } I am able to get output of print `find /abc/xyz/pqr/$values" -type f -ls` >> Report.txt in... (2 Replies)
Discussion started by: harpal singh
2 Replies

2. Shell Programming and Scripting

Need help in Perl Script for printing next line

I got multiple of documents in which i have to extract a line coming after a ID..The scenario is Customer ID: none VT : 002/89 Customer ID: Yes VT: 001/89 Customer ID: none VT: 006/85 Customer ID: Yes VT: 003/56 I have to extract the id which is coming after YES..The output... (7 Replies)
Discussion started by: rajkrishna89
7 Replies

3. Shell Programming and Scripting

help with perl database printing

Hey guys i am using perl and trying to pull a list of books from a database and then populate the list in a separate TT2 file. When the list is generated there should be 39 book names. When I do the foreach statement in my tt2 below, the first statement gives me 39 Array(random number) and the... (1 Reply)
Discussion started by: Joey12
1 Replies

4. Shell Programming and Scripting

Perl: selective printing of lines

Hi, I have a file with lines like this. 2 7 18 ggcgt anna 2 7 18 hhchc sam 3 7 18 hhdjcc ross 4 7 18 hhcjd jenny 0 8 21 jjdhs sam 3 8 21 kkok bush 2 9 24 kosss BrenhamIf the values of the second column are equal, print only those lines with the least first column value. So in... (5 Replies)
Discussion started by: polsum
5 Replies

5. Emergency UNIX and Linux Support

Perl - Retrieving and Printing Security Token

My script below is supposed to log in to my vB account on any vB forum I'm registered on and retrieve + print my security token. However it seems to be hit and miss. The logging in works perfectly just will not retrieve and print the security token for every forum I log in to. Code Below: ... (3 Replies)
Discussion started by: AndrewTwain
3 Replies

6. Shell Programming and Scripting

Printing between 2 matches with Perl

Can we please modify this perl one-liner to print lines between pattern1 and pattern2 in a file? Currently it prints lines till pattern2. (4 Replies)
Discussion started by: anand_bh
4 Replies

7. Shell Programming and Scripting

Need help in printing a sql query in perl

Hi All, I have the following sql query select abcd from udbadm.log where xyz='1'. I have 16k queries similar to this with different values for xyz. I want to print the values of 'abcd' for each row. I have the following perl code, but not sure how i can print that particular... (1 Reply)
Discussion started by: userscript
1 Replies

8. Shell Programming and Scripting

Perl printing error

Hi Scripting Gurus, I am new bee in perl, and trying to write a script which must print the free disk space availability of C and E drives. Please advice. Here is the script snippet and expected output: #!/usr/bin/perl use CGI qw/:html3 :standard/; $spaceuselog =... (4 Replies)
Discussion started by: ccsaviour
4 Replies

9. UNIX for Dummies Questions & Answers

Perl, printing a string into columns

How can I use Perl to a take a string of 10 characters and print the last five characters of the string in columns 1-5 and the first five in columns 6-10? Result: 0123456789 5 0 6 1 7 2 8 3 9 4 (5 Replies)
Discussion started by: doubleminus
5 Replies

10. Shell Programming and Scripting

comparing scalars contaning "DOUBLE QUOTES" as data

Hello to all, Does anyone know the solution ? Two strings A and B are present. I want to check whether B is a Substring of A. 1. The value of A is - 29 * * * /bin/ls "test" "tmp*" "log*" (Note: Pl note that A contains DOUBLEQUOTES, ASTERISK & FRONTSLASH) 2. The value of B is -... (5 Replies)
Discussion started by: rssrik
5 Replies
Login or Register to Ask a Question