stattinMedlem sedan jan. 2005713 inlägg Först vill jag säga hej till alla och att jag nu ställer min absolut första fråga i detta forum.
Fråga:
Kan man läsa in html kod på annat sätt än:
print "<html>\n";
print "<body>\n";
Så man slipper skriva rad för rad.
Ungefär så som nedan:
en början
en massa html kod.....
ett slut
Kan ju också tillägga att jag är extremt nybörjare på perl.
/stattin
JojoxxMedlem sedan juni 20004 308 inlägg Välkommen till wF :)
Jodå, det finns ett par sett. Jag brukar använda qq. Så här;
print qq^<p>här kommer
<strong>html</strong> på
flera rader^;
Fördelen är att du kan byta ut "^" mot något annat tecken som du inte använder inne i själva stycket.
Peter_BMedlem sedan apr. 2000642 inlägg Du kan även ha flera rader i en vanlig printsats, typ:
print "Hej
Hopp
Kalle
Stropp!
";
Nackdelen är att specialtecken måste ha \ framför sig, vilket kan ställa till det lite om man ska skriva tex "-tecken utan att vilja tänka för mycket. Detta ger även automatiskt \n efter varje ord, rättare sagt, det betyder samma sak. Sen måste man inte byta rad i html, men det blir ju lite lättare att läsa om man kollar på källkoden i brownsern..
Du kan lösa \-problemet genom att skriva:
print 'Hej
Hopp ....
';
istället, men då får du inte värdet på variablerna insatta som du får med "-tecken.
stattinMedlem sedan jan. 2005713 inlägg Tackar!
Har en fråga till, vi kan nog ta det i samma tråd:
Detta script lär vara bekant:
$min_fil = "min_datafil.txt";
print "Content-type:text/html\n\n";
open(INDATA,"$min_fil") || &Fatal;
@rader = <INDATA>;
foreach $rad (@rader)
{
print $rad;
}
close(INDATA);
sub Fatal
{
print "Kan inte öppna filen $min_fil för läsning."
}
Nu är problemet det att jag har försökt lagt in html kod före "print $rad;" och html kod efter men lyckas inget vidare med det.
Filen jag läser in ska höra ihop med med koden ovanför och under.
JojoxxMedlem sedan juni 20004 308 inlägg foreach $rad (@rader)
{
...
}
Definierar en loop, så vill du lägga till html-data före och efter som inte skall upprepas lika många gånger som antaler rader i filen måste du lägga till denna html-kod utanför loopen.
$min_fil = "min_datafil.txt";
print "Content-type:text/html\n\n";
open(INDATA,"$min_fil") || &Fatal;
@rader = <INDATA>;
print qq^... lite html...^;
foreach $rad (@rader)
{
print $rad;
}
print qq^... mer html...^;
close(INDATA);
sub Fatal
{
print "Kan inte öppna filen $min_fil för läsning."
}
stattinMedlem sedan jan. 2005713 inlägg :D Tack igen!
Nu lär jag klara mig ett tag till.
JojoxxMedlem sedan juni 20004 308 inlägg Tanken är att du skall acceptera det svar som gav lösningen på din fråga, inte ditt eget inlägg (för framtida läsare) :)