सरल पर्ल फॉर-लूप त्रुटि - perl

for ($i=1; $i<=3; $i++) {
if ( @user$i[3] >= 4.0 ) {
print "first";
} elsif ( @user$i[3] < 4.0 and @user$i[3] >= 2.5 ) {
print "second";
} else {
print "third";
}
}

यह काम नहीं करता है

मैं कोड के नीचे एक ही समारोह चाहता हूँ

क्या आप मुझे कुछ मदद दे सकते हैं

if ( @user1[3] >= 4.0 ) {
print "first";
} elsif ( @user1[3] < 4.0 and @user1[3] >= 2.5 ) {
print "second";
} else {
print "third";
}

if ( @user2[3] >= 4.0 ) {
print "first";
} elsif ( @user2[3] < 4.0 and @user2[3] >= 2.5 ) {
print "second";
} else {
print "third";
}

if ( @user3[3] >= 4.0 ) {
print "first";
} elsif ( @user3[3] < 4.0 and @user3[3] >= 2.5 ) {
print "second";
} else {
print "third";
}

उत्तर:

उत्तर № 1 के लिए 1

विभिन्न सरणी पर पुनरावृत्त करने के लिए संदर्भों का उपयोग करें।

perldoc perlref - पर्ल संदर्भ

perldoc perldsc - पर्ल डेटा संरचना कुकबुक

#/usr/bin/env perl

use strict;
use warnings;

my @user1 = ( 1, 2, 3, 4 );
my @user2 = ( 4, 3, 1, 2 );
my @user3 = ( 2, 1, 4, 3 );

my $data = [ @user1, @user2, @user3 ];
my $field = 3; # Fourth field, perl is 0-based

for my $users ( @$data ) {
# $users->[...] instead of $users[...] because $users is an array reference
if ( $users->[$field] >= 4.0 ) {
print "first";
} elsif ( $users->[$field] < 4.0 and $users->[$field] >= 2.5 ) {
print "second";
} else {
print "third";
}
print "n";
}

उत्पादन

first
third
second