Hali!
Szeretnék egy scriptet irni, ami az adott könyvtárban létrehoz egy filet XZ tartalommal. Nem akarok több filet használni erre, szóval a generator scriptbe kellene valahogyan eldugni a tartalmat, amit be akarok tenni a fileba. Hogyan tudnám pl ezt egy változóban eltárolni:
<?
$text = "Gyoker vagyok";
print $text;
?>
Koszi
- 1047 megtekintés
Hozzászólások
a többsorosságot csak összezavarásképpen írtad, vagy az a konkrét probléma.
<?
$response "Mert egy változó
Több sorba is kerülhet, sőt,
ha idézőjeleket használsz '-k helyett, akkor pl. \n így is beszúrhatsz sortörést:)
De ne fejeltsed el escapeelni a szövegen belül lévő idézőjeleket \"ilyenféleképpen\", hogy ne ott érjen vget a string";
int getRandomNumber() {
return 4; //szabályos kockadobással választva. garantáltan véletlenszerű.
} //xkcd
- A hozzászóláshoz be kell jelentkezni
Itt van a konret pl, h mindenki jobban ertse:
#!/usr/bin/perl
use strict;
use warnings;
$all = '<?php
$files = scandir("./");
print "<form action=\"index.php?download\" method=\"post\">";
foreach($files as $v){
if((is_file($v)) AND (substr($v, 0, 1) != ".")){
print "<input type=\"checkbox\" name=\"".$v."\" value=\"1\">".$v."<br />";
}
}
print "<input type=\"submit\" value=\"download\" />";
print "</form>"; ?>
Erre ezt kapom:
Global symbol "$all" requires explicit package name at /var/www/learning/lear1.pl line 6.
Execution of /var/www/learning/lear1.pl aborted due to compilation errors.
at /var/www/learning/lear1.pl line 42
Ha a strictet kiszedem, akkor ok, csak warning van, de jo lenne tudni, h miert van warning, vagy error, stricttel.
- A hozzászóláshoz be kell jelentkezni
Inkább így:
#!/usr/bin/perl
use strict;
use warnings;
my $all = <<'END';
<?php
$files = scandir("./");
print "<form action=\"index.php?download\" method=\"post\">";
foreach($files as $v){
if((is_file($v)) AND (substr($v, 0, 1) != ".")){
print "<input type=\"checkbox\" name=\"".$v."\" value=\"1\">".$v."<br />";
}
}
print "<input type=\"submit\" value=\"download\" />";
print "</form>"; ?>
END
print $all;
- A hozzászóláshoz be kell jelentkezni
Hm... valami ilyesmit is próbáltam már, de nem ment, de talán csak azért mert rossz helyre tettem a pontos vesszőt és így esélye sem volt, h működjön. Talán majd most ezzel menni fog már.
- A hozzászóláshoz be kell jelentkezni
A "use strict;" miatt nem lehet csak úgy hipp-hopp $all-al definiálni az "all" nevű változót, hanem "my $all", vagy "our $all", vagy "$main::all" módon kell jelezni a változó deklarációt a Perl számára.
Ez a megfejtése a "Global symbol "$all" requires explicit package name" hibaüzenetnek. Egyébként pedig vmi olyasféle megoldásra van szükség, amit zamboriz írt.
- A hozzászóláshoz be kell jelentkezni