Search your unanswered perl queries
Google

Tuesday, December 18, 2007

__DATA__ a Virtual File In Perl

It has been occurred a lot of times that one has to test a code using data from a file. It can be anything like checking for a pattern in a file to taking some input. If you want to check the code without opening the file and reading it. One can use the __DATA__ marker provided by perl as a pseudo-datafile.

Steps to follow:
1) At the end of the code use __DATA__ marker and copy paste or write the contents of the file you wish to test exactly from the next line of _DATA_.
2) Use while (){ -- your code here -- }.

#!/usr/bin/perl
use strict;
use warnings;

while () {
chomp $_;
print "Found" if $_ =~ /(t\w+)/;
print $1;
}
__DATA__
hello there how r u

Output of the above program will be “there”.

Note: If you have any queries do leave your comments.

Friday, December 14, 2007

Executing Commands on Remote Machine

Hello Everyone, This time it is not a solution on something. Instead it a a problem which I require a solution to and is related to a critical task at my work. And would require your valuable comments on this.

I want to execute commands on a remote machine via Apache. I will be using the Net::SSH::Perl module to do it. But when I try doing it from shell running the script as root it get executed and the expected results are shown. However when I execute it through CGI with apache as user it doesn't get executed.

After digging it a lot I think it might be the permission issue where apache does not have permissions to execute the script on remote machine. Executing apache script as root will not be secure. SO do you guyz have any comment on this.