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...
1 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;
QuoteIt also differs in that code evaluated with do FILENAME cannot see lexicals in the enclosing scope; eval STRING does
system("anderes.pl");
system "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.
Guest 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';