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.
- 967 megtekintés
Hozzászólások
Blind shot:
\addSubSection helyett \&addSubSection ?
- A hozzászóláshoz be kell jelentkezni
OMG :D Köszi , szerintem soha a büdös életbe nem vettem volna észre
A másik hihetetlen véletlen hogy pont azt a sort másoltam ki amiben el van írva :D
ty csak typo volt
- A hozzászóláshoz be kell jelentkezni
Ú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.
- A hozzászóláshoz be kell jelentkezni