Multiline variable

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

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

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.

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 "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.