Der Error „Undefined subroutine“ in Perl bedeutet im Grunde genommen nur, dass die Subroutine, die aufgerufen wird, nicht gefunden bzw. nicht definiert worden ist.

So definiert man eine Subroutine in Perl:

sub testroutine {
#code zum ausführen
}

Wenn man eine Subroutine aus einem anderen package aufrufen möchte muss man diese vorher mit

Use PaketMitSubroutine;

und an gewünschter Stelle im Code:

$data = PaketMitSubroutine::testroutine();

aufrufen. Somit wird klar gestellt, dass „testroutine“ eine Subroutine aus dem package „PaketMitSubroutine“ ist und das Programm dort nach dieser Subroutine suchen muss. Ansonsten würde es im eigenen Paket nach „testroutine“ suchen, jedoch nicht fündig werden und einen Error produzieren.