Jemand zu Hause?Leser: 18
sub HR { return "-"; }
DESTROY { my $s = shift; print $s->HR; }
sub Machwas { eval { do "anderes.pl"; }; return 1; }
sub HR { print "-" x ( $_[0] ? $_[0] : 79 ) ."\n"; }
Guest smanCode (perl): (dl )sub Machwas { eval { do "anderes.pl"; }; return 1; }
QuoteDieses andere Script ist völlig simpel, keine objekte oder module, sondern hat lediglich normale subs, z.B. auch eine
Code (perl): (dl )sub HR { print "-" x ( $_[0] ? $_[0] : 79 ) ."\n"; }
QuoteVielleicht kann man auch irgendwie do $file daran hindern subs zu überschreiben? Nach perldoc sollte das ja eigentlich sowieso nicht gehen...
use strict lesen.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem1 2 3 4 5 6 7 8 9
package Anderes; use strict; use warnings; sub machwas { # tue das, was vorher in anderes.pl stand } 1;
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-ProblemQuoteIt also differs in that code evaluated with do FILENAME cannot see lexicals in the enclosing scope; eval STRING does
system("anderes.pl");
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problemsystem "start anderes.pl"
Guest smanIn der perldoc zu do heißt es:QuoteIt also differs in that code evaluated with do FILENAME cannot see lexicals in the enclosing scope; eval STRING does
Quoteuse strict benutze ich, ja! Aber keine warnings.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-ProblemGuest smanEine warnung würde mir in dem Fall auch nichts bringen, ich will das fremde script ausführen, und höchstens bei einer warnung die Ausführung verhindern.
use warnings FATAL => ':all';