Das stimmt imho nicht ganz, was Ronnie und kristian geschrieben haben.
Bei
grab(@domains) werden nicht die Werte des Arrays kopiert. Es wird fuer jedes Element des Arrays ein Alias uebergeben. Ausprobieren kann man das so:
sub grab {
$_[0] = "zwei";
}
my @array = ("eins");
grab (@array);
print "@array\n"; # Ausgabe ist zwei
Oft faengt man jedoch eine Subroutine so an:
sub grab {
my ($stuff, $blah) = @_;
Hier werden tatsaechlich alle Werte kopiert, aber das kommt nicht von der Aufrufart. Da diese Art, eine Subroutine zu schreiben, aber meist komfortabler ist als staendig
$_[0] etc. zu verwenden, kann man den Aufruf ueber
grab(\@array) vorziehen. Was auch nur mit einer Array-Referenz geht, ist, dass man die Laenge des Arrays veraendert.