0

perl スクリプトでかなり奇妙な問題が発生しました。そこで何が起こっているのか、私にはまったくわかりません。

私のスクリプトはNet::SSH::Perl、SSH 経由でホスト マシンに接続するために使用します。その後head -20、config.ini でパターン (バージョン番号) を検索します。

バージョン番号を出力した後、cat約 700 行の長さの別のファイルを表示します。

現在起こっていることは、バージョン番号を出力する代わりに、スクリプトが 700 行のファイル全体を出力することです。version-print のすぐ後ろに追加しない限りprint "\n"x10;

この振る舞いは私には何の意味もありませんが、あなたの誰かが私よりも頭が良く、答えを知っていると確信しています:)

スクリプトの下:

  1 #!/usr/local/bin/perl -w
  2 use lib './';
  3 use strict;
  4
  5 use GetVersions;
  6 use Net::SSH::Perl;
  7
  8
  9 my $ssh = Net::SSH::Perl->new(
 10         'host',
 11         identity_files => ['~/.ssh/id_rsa']
 12 );
 13
 14 $ssh->login('user');
 15
 16 my $ver_regex = '^psadm\.version\s*=\s*rel_(.+)$';
 17
 18 my ($file, $err, $exit) = $ssh->cmd('head -20 /config.ini');
 19 my $version = $file =~ /$ver_regex/m;
 20 print "version: $version\n",
 21 #print "\n"x10;
 22 ($file, $err, $exit) = $ssh->cmd('cat /application.ini');
4

1 に答える 1

10

これはおそらくセミコロンである必要があります

print "version: $version\n",
                           ^
于 2013-08-22T14:44:56.447 に答える