Arrays perl
From Teknologisk videncenter
Referencer til arrays
Overføre array til subroutine
Overfør en reference til arrayet. (Subroutinen får adressen på arrayet og arbejder på det originale Overfør reference til subroutine. Eksempel.
#Opret et array
my @array = qw(A B C D E F G H I J);
#--------------------------------------------
print "Det originale array\n";
for ( my $i=0; $i <= $#array ;$i++ ) {
print $i,":",$array[$i]," ";
}
#--------------------------------------------
mercantec(\@array);
#--------------------------------------------
print "\nEfter kald til subroutine mercantec\n";
for ( my $i=0; $i <= $#array ;$i++ ) {
print $i,":",$array[$i]," ";
}
#--------------------------------------------
sub mercantec() {
my $a = shift;
$a->[2] = Z; # -> betyder reference til
}
Indsætte og fjerne elementer i et array
Eksmepler på pop,push,shift,unshift og splice herunder
my @array = qw(A B C D E F G H I J);
#--------------------------------------------
print "Det originale array\n";
for ( my $i=0; $i <= $#array ;$i++ ) {
print $i,":",$array[$i]," ";
}
#--------------------------------------------
print "\n\nVi ønsker at tilføje et element til sidst i arrayet.\n";
push(@array,"K");
for ( my $i=0; $i <= $#array ;$i++ ) {
print $i,":",$array[$i]," ";
}
#--------------------------------------------
print "\n\nVi ønsker at tilføje et element i starten af arrayet.\n";
unshift(@array,"=");
for ( my $i=0; $i <= $#array ;$i++ ) {
print $i,":",$array[$i]," ";
}
#--------------------------------------------
print "\n\nVi ønsker at fjerne det første element.\n";
shift(@array);
for ( my $i=0; $i <= $#array ;$i++ ) {
print $i,":",$array[$i]," ";
}
#--------------------------------------------
print "\n\nVi ønsker at fjerne det sidste element.\n";
pop(@array);
for ( my $i=0; $i <= $#array ;$i++ ) {
print $i,":",$array[$i]," ";
}
#--------------------------------------------
print "\n\nVi ønsker at tilføje et element mellem 3 og 4.\n";
splice(@array,3,0,"*");
for ( my $i=0; $i <= $#array ;$i++ ) {
print $i,":",$array[$i]," ";
}
#--------------------------------------------
print "\n\nVi ønsker at fjerne element 3 og 4.\n";
splice(@array,3,2);
for ( my $i=0; $i <= $#array ;$i++ ) {
print $i,":",$array[$i]," ";
}
#-----------------------------------------