मेरे पास यह पर्ल कोड है जो केवल सभी पंक्तियों की बजाय पहली पंक्ति प्रिंट कर रहा है।पर्ल फोरैच लूप प्रिंट केवल एक पंक्ति
use Net::SSH::Perl;
my $user = "user";
my $cmd = "df -m | grep data";
my $host = "host1.example.com";
my $ssh = Net::SSH::Perl->new($host);
$ssh->login($user);
my ($dflines,$errors,$exit) = $ssh->cmd($cmd);
foreach $line ($dflines) {
print "$line";
my @values = split(' ',$line);
my ($MBsize, $MBused, $MBavail, $dir) =
($values[1], $values[2], $values[3], $values[5]);
print "MBsize=$MBsize MBused=$MBused MBavail=$MBavail dir=$dir\n";
}
यह प्रिंट:
/dev/sdb1 1407118 931813 403828 70% /data1
/dev/sdc1 1407118 921739 413902 70% /data2
/dev/sdd1 1407118 909408 426233 69% /data3
/dev/sde1 1407118 918828 416813 69% /data4
/dev/sdf1 1407118 922335 413306 70% /data5
MBsize=1407118 MBused=931813 MBavail=403828 dir=/data1
मैं उम्मीद करेंगे:
/dev/sdb1 1407118 931813 403828 70% /data1
/dev/sdc1 1407118 921739 413902 70% /data2
/dev/sdd1 1407118 909408 426233 69% /data3
/dev/sde1 1407118 918828 416813 69% /data4
/dev/sdf1 1407118 922335 413306 70% /data5
MBsize=1407118 MBused=931813 MBavail=403828 dir=/data1
MBsize=1407118 MBused=921739 MBavail=413902 dir=/data2
MBsize=1407118 MBused=909408 MBavail=426233 dir=/data3
MBsize=1407118 MBused=918828 MBavail=416813 dir=/data4
MBsize=1407118 MBused=922335 MBavail=413306 dir=/data5
मैं लगभग निश्चित है कि यह कुछ बुनियादी हूँ। किसी भी मदद की सराहना की है। धन्यवाद! के बाद से है कि एक सरणी नहीं है, लेकिन एक अदिश,
foreach $line ($dflines) {
आप केवल एक ही यात्रा को क्रियान्वित कर रहे हैं:
मत भूलना: 'सख्त उपयोग करें; चेतावनियों का उपयोग करें; ' – Ether