You are on page 1of 5

Lists and array variables

 Perl allows to define an ordered collection of values called


“lists”.
Ex: (10,20,30,40);
 This ordered collection of elements can be stored in the
variables called “arrays”.
 List is a sequence of scalar values enclosed in parantheses.
Ex: (10,”rama”,12.44,’A’);
 List can be of any length.
 We can create empty lists also as “( )”
 (43.2) and 43.2 are not same. The first one is a single element
list and second one is a scalar value.
 We can have scalars also as a member of the list as:
Ex: (23,$a, 34.2)
 We can have value of expressions also as members of the list.
Ex: (17, $a>$b)
(90,$a+$b)
Storing lists in array variables
 To store lists, Perl uses special variables called “array variables”
(or) “arrays”.
 Name of an array starts with ‘@’ and the 2nd character can be
an alphabet.
 Digits, underscores are also allowed.
Ex:
@arr=(1,2,3);
@my_arr=(“ Jones”,123);

Accessing the array elements

 Array elements have indices associated with them.


 Index always starts from 0, by default.
 Array elements are referred by their index values as:
$array_name[index]
Ex:
@list=(1,2,34,4,23);
print $list[0];
print $list[1];
 Even though ‘list’ is an array, while referring independent array
elements, we use ‘$’ only.

 If we try to access an element which is not existing, we get


“null” (or) “undef” value.
Ex:
@list=(1,2,34,4,23);
print $list[10]; à undef
Ex:
$x=$list[6];
Now, $x holds ‘undef’ value, as there is no element defined in the
array with the index 6.
Assigning a new value to an array
Ex:
Suppose the array is :
@arr=(10,20,30,40,50);
 To add new element to the array,
$arr[5]=100;
Now, our array will be:
@arr=(10,20,30,40,50,100);
Ex:
$arr[10]=200;
Now, the array is (10,20,30,40,50,100,”” ,””,””,””,200);

Ex: print all array elements


printing using foreach
@arr=(10,20,30,40);
foreach $i(@arr)
{
print "$arr[$i]\t";
}

List range operator(..)


 Used to store consecutive numbers.
Ex:
@arr=(1,2,3,4,5,6,7,8,9,10);
@arr=(1..10);
 We can use ranges as a part of the list as:
@arr=(10,20,5..15,90,78);

Copy one array into another


 @arr1_copy = @arr;
 @arr1 = @arr2 = (1,2,3);

Program to read array elements from keyboard

print "enter array elements\n";


@arr=<STDIN>;
chop(@arr);
print "Array is:@arr\n";

Program to read fixed no. of array elements

print "enter 5 array elements\n";


for($i=0;$i<5;$i++)
{
$arr[$i]=<STDIN>;
chop($arr[$i];
}
print "array is:@arr\n";

You might also like