SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

SV: return i subfunctions



Jeg har lavet et lille eksempel, som viser anvendelse af array af
referencer
af arrays som løsning på problemet, hvor flere arrays skal returneres.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !
                  
=================================================================                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !
                                                                                  
#!/usr/bin/perl -T -w

# Define two arrays passed as arguments to function.
@a1 = (1,2,3);
@a2 = (4,5,6);
print "*** main ***   @a1\n";
print "*** main ***   @a2\n";

# Call function with two arrays, one of which is modified.
# Return references to two arrays, begin equal to the
# original arguments.
($r1,$r2) = jk1(*a1,*a2);

print "*** main ***   @a1\n";
print "*** main ***   @a2\n";
print "*** main ***   r1=(",@$r1,")  r2=(",@$r2,")\n";
print "*** main ***   r1[1]=",$r1->[1],"\n";

sub jk1 {
    # Store arguments
    local *ar1 = shift;
    local *ar2 = shift;
    # Return values
    my (@ba1);
    my (@ba2);
    # Store original argument values in return values.
    @ba1 = @ar1;
    @ba2 = @ar2;
    # Print global variables
    print "a1=(@a1)\n";
    print "a2=(@a2)\n";
    # Print original arguments. Notice difference
    # when printing references.
    print "ar1=(",@ar1,")\n";
    print "ar2=(",@ar2,")\n";
    # Assign to second argument the value of first argument.
    @ar2 = @ar1;
    # Print arrays to return
    print "ba1=(@ba1)\n";
    print "ba2=(@ba2)\n";
    # Return array of references to arrays.
    return (sslug@sslug,sslug@sslug);
}

sub END {
    print "end of program\n";
}
sub BEGIN {
    print "start of program\n";
}
=================================================================                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !
                                                                                  

Jeg håber, at du kan tilpasse dette til dit behov.

mvh
Jan Eggert Kofoed


 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:51
Denne side vedligeholdes af MHonArc .