perl : not a CODE reference at ...

Hi all

Írtam egy perl scriptet ami egy logfájlból a felprefixelt bejegyzések alapján egy reportot épít.
A report bejegyzésekhez tartozhat alszekció amit úgy hozok létre, hogy a report bejegyzést készítő subroutinenak átadom az alszekciót legenráló subroutinet attól függően hogy milyen alszekcióra van szükség.

Ez a mai napig gyönyörűen ment is de ma reggel miután módosítottam az egyik alszekció generáló rutint elkezdett hibát dobni. Miután visszaálítottam a módosítás előtti állapotot akkor sem lett jó.

Hangsúlyozom ez működött már, de most nem.

a kód ide vágó része itt található: http://pastebin.com/eaRYKGnp

a hibaüzenet ennél a sornál jelentkezik:


$subFunction->("p","extendable",$params[4]);

a hibaüzenet pedig:

 
Not a CODE reference at ./InstallReportGenerator.pl line 211, <LOGFILE> line 54046.

Van valakinek valami tippje hogy miért romlott el?

Köszönöm.

Hozzászólások

Blind shot:

\addSubSection helyett \&addSubSection ?

Úgy látom, hogy use strict és warnings nélkül írtad meg az egészet, ami nem volt jó döntés.
Ha a warnings be lett volna kapcsolva, akkor már rég panaszkodott volna a bareword miatt.
A strict pedig nem hagyta volna, hogy ilyen - már elnézést - rosszul strukturált, csupa globális változót használó, átláthatatlan kódot írj.

szerk: az ilyen "visszaállítottam az eredetit, de így se jó" típusú hibajelenségek jellemzően abból fakadnak, hogy valójában mégsem az eredetit állítottad vissza. Ezért célszerű verziókezelőt használni még a relatíve kis projektekhez is: egyrészt tényleg vissza tudod állítani az eredetit, másrészt rákényszerít, hogy dokumentáld a módosításaidat, ezáltal arra is, hogy átgondoltabban, jobban programozz.