Thread Log::Log4Perl::CommandLine und Getopt::Long für eigene Argumente (4 answers)
Opened by orui at 2012-01-16 15:02

murphy
 2012-01-16 16:31
#155470 #155470
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
2012-01-16T15:04:02 orui
[...]
Getopt schreibt die Ergebnisse aber direkt in die darüber deklarierte Varibale.
[...]

Das stimmt nicht ganz: GetOptions schreibt den Wert für eine Option X, für die keine explizite Zielvariable angegeben ist, in eine globale Variable namens C::opt_X, wobei der Namensteil X noch von Sonderzeichen gesäubert wird und C der Namensraum des aufrufenden Programmteils ist, welcher mit Hilfe schwarzer Magie ermittelt wird.

Dieses Verhalten ist ganz offensichtlich unzuverlässig, weil es Namensraummagie erfordert, es ist explizit in der Dokumentation von CPAN:Getopt::Long als "Legacy" markiert und überhaupt sollten sich bei jedem Programmierer, der auch nur im Ansatz Wert auf sauberen Stil legt, sofort die Fußnägel aufrollen, wenn er einen solchen Murksmechanismus verwendet ;-)
When C++ is your hammer, every problem looks like your thumb.

View full thread Log::Log4Perl::CommandLine und Getopt::Long für eigene Argumente