string printen der einen string enthält teil 2
roman lenz
- perl
hi hi
ich möchte eine string printen der eine string enthält. der innere string soll beim printen umgesetzt werden.
Ich habe dazu gestern schon mal ein posting gemacht [pref:t=56245&m=314371].
der lösungsansatz mit eval klappt nur bei strings ich will aber auch arrays und subrotienen umsetzen.
heute wollte ich es mit referenzen probieren (so wie in diesem posting [pref:t=56347&m=314980]) was auch nicht richtig klappt.
my $ref="\$1"; ist keine ref ?!
hat jemand einen lösungsvorschlag?? ansonsten geben ich es drann :-(( und benutze das modul templet oder embperl oder geh in die sonne
besten dank
bis bis roman
ps. die HTML-ausgabe benutze ich nur weil ich vor einer win-dose sitze und keine console habe.
__CODE__
#!D:\Perl\bin\perl.exe
use strict;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
my @welt=("Hallo Erde","toll");
my $welt="Hallo Welt";
my $string='<br><h1><!-- $welt --></h1>';
my $cgi = new CGI; # neues Objekt erstellen
$string=~s/<!-- ([$@&%]{1}.+?) -->/$1/g;
my $ref="\$1";
print $cgi->header(-type => 'text/html');
print <<HTML;
<html><head><title></title>
<meta http-equiv="content-type"
content="text/html; charset=ISO-8859-1">
</head><body>
hallo:
$string
:auch
$$ref
</body></html>
HTML
sub welt(){
my $tt="sub";
return($tt);
}
Halihallo roman
hat jemand einen lösungsvorschlag?? ansonsten geben ich es drann :-(( und benutze das modul templet oder embperl oder geh in die sonne
Ich habe zwar nicht alles gelesen, aber das eval hat mich gleich gestört... Hier ein
Ansatz, der dich ggf. weiter bringt (ohne eval):
our $variable = 'tester';
our @array = qw(tester testi);
my $name = 'variable';
my $arr = 'array';
print ${"main::$name"}."\n";
print "@{"$main::$arr"}"."\n";
Die über die Symbol-Table (%{main::}) erhaltenen Variablen _müssen_ im Modul-Scope
deklariert werden, also perldoc -f our . Sonst werden sie autoviviziert oder wie das
heisst und werden mit undef iniziiert...
Viele Grüsse
Philipp