Visit Our UNIX and Linux User Community


[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

Previous Thread | Next Thread
Test Your Knowledge in Computers #29
Difficulty: Medium
Computer hard disks were first introduced in 1956.
True or False?

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

Featured Tech Videos