-5
 #! usr/bin/perl
    sub memoryInfo
    {
        print "Inside memory info \n";
        @memoryInfo = qx(free -m);
        foreach (@memoryInfo)
        {
            print "$_\n";
        }

    }

    &memoryInfo;

这是我的 Perl 程序,它不工作。我需要一些信息,例如总内存、总物理内存、总使用内存、总缓存内存、总交换内存和总使用交换内存。

谁能帮我?提前致谢。

4

2 回答 2

1

这工作得很好。

#!/usr/bin/perl

use strict;
use warnings;

sub memoryInfo
{
    print "Inside memory info \n";
    my @memoryInfo = qx(free -m);
    foreach (@memoryInfo)
    {
        print "$_\n";
    }

}

memoryInfo();
于 2013-04-24T12:51:08.617 回答
1

你的程序运行良好,只要你用

perl meminfo.pl

当成为可执行文件时,您应该会收到如下错误:

./meminfo.pl
bash: ./meminfo.pl: usr/bin/perl: bad interpreter: No such file or directory

这表明您的shebang(以开头的第一行#!是错误的...

此外,您会注意到输出中有额外的换行符,因为数组中的每一行都已经有一个换行符......

最后:

  • 使用严格和警告
  • 不要用&
  • 避免变量中的骆驼大小写

您的程序的工作版本可能是:

#!/usr/bin/perl

use strict;
use warnings;

sub memoryInfo {
    print "Inside memory info \n";

    my @memoryinfo = qx(free -m);
    chomp @memoryinfo;

    foreach (@memoryinfo) {
        print "$_\n";
    }
}

memoryInfo;
于 2013-04-24T12:57:44.967 回答