Xaxi: Return-Wert von Subroutinen

Beitrag lesen

Hallo,
kann mir jemand erklären, warum im 3. Beispiel nicht auch der Wert 5 als Ergebnis herauskommt? Ich hab doch nur die Routine up3 direkt
angegeben.

1.

sub up1{
    return 5
}
$erg1 = up1();
print "$erg1 = $erg1\n";    # ===> $erg1 = 5

2.

sub up2{
    sub up3 {return 5};
    return up3()
}
$erg2 = up2();
print "$erg2 = $erg2\n";    # ===> $erg2 = 5

3.

sub up4{
  return sub {
    return 5
  }
}
$erg4 = up4();
print "$erg4 = $erg4";      # ===> $erg4 = CODE(0x18329b4)