Schrift
[thread]297[/thread]

print << eof: manchma gehts manchma nich

Leser: 1


<< >> 7 Einträge, 1 Seite
rio
 2004-06-16 10:38
#2891 #2891
User since
2004-05-31
105 Artikel
BenutzerIn
[default_avatar]
hi , ich hab immer wieder probleme mit der print << anweisung
und da hab ich mich gefragt warum immer "random" fehler

Code: (dl )
1
2
3
4
5
print<< Lampe

<html> .......

Lampe;


geht manchmal ,manchmal nicht

Code: (dl )
1
2
3
4
5
6
print<< Lampe

<html> .......

Lampe
;

das geht wenn das obere nicht geht manchmal funktioniert aber beides nicht , warum ?! was mach ich falsch\n\n

<!--EDIT|rio|1087367942-->
format_c
 2004-06-16 10:44
#2892 #2892
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Wenn ich ein Here-Dokument verwende habe ich auf folgende Sachen zu achten:
1. Das Schlüsselwort gequotet, damit auch Variablen interpoliert werden
2. nach dieser Print-Anweisung ein ;
3. Das eindeutige Schlüsselwort muss beim abschluss das einizige sein (ohne whitespaces) was in der Zeile steht.

Dann sieht so ein Here-Dokument etwa so aus:
Code: (dl )
1
2
3
4
5
6
7
my $test = "test";
print << "meinschluesselwort";
hallo
$test
trallala
meinschluesselwort
print "test2";


Gruß Alex\n\n

<!--EDIT|format_c|1087368373-->
steffenw
 2004-06-16 11:45
#2893 #2893
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
es heißt:
Code: (dl )
1
2
3
print <<Lampe;
...
Lampe
oder irgendwie gequotet.
Code: (dl )
1
2
3
print << "Lampe";
...
Lampe

Paß bitte auf, wo das ; steht, auf jeden Fall bei der Anweisung und nicht bei der Marke. Wie in Perl üblich kannst Du die Quotingzeichen weglassen, dann mußt Du aber auch die Trennzeichen zwischne << und ; weglassen.
$SIG{USER} = sub {love 'Perl' or die};
Gast Gast
 2004-06-16 18:03
#2894 #2894
my $mein_text = 'Test';

Code: (dl )
1
2
3
print <<EOF;
<p>$mein_text</p>
EOF

liefert: Test

Code: (dl )
1
2
3
print <<"EOF";
<p>$mein_text</p>
EOF

liefert: Test

Code: (dl )
1
2
3
print <<'EOF';
<p>$mein_text</p>
EOF

liefert: <p>$mein_text</p>\n\n

<!--EDIT|Dieter|1087394654-->
Taulmarill
 2004-06-16 18:41
#2895 #2895
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
seltsam, bei mir liefern alle drei ausführungen <p>Test</p>
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Gast Gast
 2004-06-16 18:57
#2896 #2896
[quote=Taulmarill,16.06.2004, 16:41]seltsam, bei mir liefern alle drei ausführungen <p>Test</p>[/quote]
So ist das - jedenfalls solange Du nicht irgendwie mit z.B.
print "Content-type: text/html\n\n";
Deinem Browser mitteilst das Du beabsichtigst HTML-Code zu senden.
Aber ich denke Du willst mich nur ein wenig auf die Rolle schieben ;)
Strat
 2004-06-17 01:54
#2897 #2897
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=format_c,16.06.2004, 08:44]3. Das eindeutige Schlüsselwort muss beim abschluss das einizige sein (ohne whitespaces) was in der Zeile steht.[/quote]
genauer gesagt: vor und nach dem Schluesselwort muss unbedingt direkt ein Zeilenumbruch kommen...

print <<END; und print <<"END"; ist identisch, weil das beides "...." entspricht

print <<'END'; # ersetzt keine Variablen, analog zu '...'

print << END; # mit leerzeichen taugt hingegen nichts

[edit]sehe gerade, einen grossteil hat Dieter schon geschrieben[/edit]\n\n

<!--EDIT|Strat|1087422951-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 7 Einträge, 1 Seite



View all threads created 2004-06-16 10:38.