Re: Executing Shell

From: Jim Gibson (jgibson_at_mail.arc.nasa.gov)
Date: 03/17/05


Date: Thu, 17 Mar 2005 13:22:31 -0800

In article <1110909881.534705.56700@l41g2000cwc.googlegroups.com>,
speedster <codenameunknown@hotmail.com> wrote:

> Hi.
> I need some help converting some php to perl.

Disclaimer: I do not know PHP.

>
> $meminfo = shell_exec( "free -o" );
> I need to execute "free-o" in shell and get the results.
> It grabs memory information about a linux webserver.

my $meminfo = `free -o`;

If you expect more than one line, then you might want to put the output
into an array:

my @meminfo = `free -o`;

>
> If it is also possible to run a regular expression on this data that
> would also be great.

if( $meminfo =~ /regular expression/ ) {
   # string in $meminfo matches regular expression
}

You don't say if you want to:

1) just know if it matches or not,
2) extract substrings, or
3) perform substitutions.

> It then outputs it in a nice format.

Use print or printf.

>
> Here it is:
>
>
> preg_match_all("/Mem:\s+?([0-9]+)\s+?([0-9]+)\s+?([0-9]+)\s+?([0-9]+)\s+?([0-9]
> +)\s+?([0-9]+).*?Swap:\s+?([0-9]+)\s+?([0-9]+)\s+?([0-9]+)/si",$meminfo,$mtype)
> ;

my @mtype = ( $meminfo =~ /.../ );

The regular expression (...) should be the same, although I would say
that you can use \d for [0-9], and using ? to set \s+ non-greedy is
useless (and ignored). The captured matches will also be stored in $1,
$2, $3, ...

>
> array_shift($mtype);
>
> echo("<mem>"."\n");
> echo("<total>".$mtype[0][0]."</total>"."\n");
> echo("<used>".$mtype[1][0]."</used>"."\n");
> echo("<free>".$mtype[2][0]."</free>"."\n");
> echo("<shared>".$mtype[3][0]."</shared>"."\n");
> echo("<buffers>".$mtype[4][0]."</buffers>"."\n");
> echo("<cached>".$mtype[5][0]."</cached>"."\n");
> echo("</mem>"."\n");
> echo("<swap>"."\n");
> echo("<total>".$mtype[6][0]."</total>"."\n");
> echo("<used>".$mtype[7][0]."</used>"."\n");
> echo("<free>".$mtype[8][0]."</free>"."\n");
> echo("</swap>"."\n");
> echo("</meminfo>"."\n");

You should ensure that the regular expression matches before using the
captured results:

   if( @mtype ) {

      print "<mem>$mtype[0]\n" .
         "<total>$mtype[1]</total>\n" .
         "<used>$mtype[2]</used>\n" .
         ... etc.;
   }

>
>
> If you can do either bit please give me an example of what I would
> write.
> (perl shell exec or perl regular expression)
>
> This is the first line of my cgi script. Im not sure if I have to
> declare headers or anything. Im new to perl.
> This script outputs xml and as php is being turned off on my server I
> must convert it to perl.

Look into use of CGI.pm module that comes with most Perl distributions.
Most Perl distributions also come with on-line documentation that is
comprehensive and up-to-date, although sometimes finding things may be
difficult. Try:

   perldoc perl
   perldoc perlintro
   perldoc perlre for regular expressions, etc.

This newsgroup is defunct. Try comp.lang.perl.misc in the future. You
should post real code there, and, since you don't know Perl, some
indication of what you are trying to do, not just "please convert this
PHP to Perl for me".

Good luck.

----== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= East/West-Coast Server Farms - Total Privacy via Encryption =---



Relevant Pages

  • Re: What are the differences between Perl and PHP when handling with Web pages
    ... What are the differences between Perl and PHP? ... anyway for the sake of good programming practice. ... I end up using PHP more for web development than PHP. ...
    (perl.beginners)
  • Re: Can a Perl Programmer Pick up PHP quickly?
    ... PHP is not easier compared to Perl. ... a language with fewer features is going to be easier to ... You can't call documentation guessed after the source not good ...
    (comp.lang.perl.misc)
  • Re: Face lift survey
    ... But PHP, I think, integrates html code a better way. ... you still have to do a perl script and then put ... Perl CGI programming! ...
    (perl.beginners)
  • Re: Coverting perl to php
    ... I am bout ready to convert it to php but wonder if there are ... but there's nothing to match a good perl person porting their ... The reason for the rewrite is because a large chunk of the ancilary ... code to talk to the database, recreating what they did, and having 2 ...
    (comp.lang.php)
  • RE: What are the differences between Perl and PHP when handling with Web pages
    ... I think perl can be used for more applications than PHP. ... You don't really need scripting to build a web site. ... there are people programming in PHP and perl. ...
    (perl.beginners)