/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
foreach ... hvorfor
Fra : dudsen


Dato : 09-11-02 14:28

hvorfor virker
foreach $line (@linier) {
print "dddaad";
}
ikke når
foreach $line (@linier) {
print "$line";
}
virker fint.

Er der et eller andet der gør at jeg ikke kan leve mere komplicerede
operationer end at bruge regexp på $line og printe $line.

@linier er et array indeholdene en række strings det er hentet fra en
fil.
--
Daniel Udsen
I'm having a CRISIS!

 
 
Lars Balker Rasmusse~ (09-11-2002)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 09-11-02 14:44

dudsen <dudsen@gjk.dk> writes:
> hvorfor virker
> foreach $line (@linier) {
> print "dddaad";
> }
> ikke når
> foreach $line (@linier) {
> print "$line";
> }
> virker fint.

Definer virker. Begge to gør da lige det man måtte forvente.

Hvis @linier indeholder linier fra en fil, er der sikkert \n i
slutningen af hver. Prøv med 'print "ddaad\n";' i stedet.

> Er der et eller andet der gør at jeg ikke kan leve mere komplicerede
> operationer end at bruge regexp på $line og printe $line.

Nej.
--
Lars Balker Rasmussen                  "S.M.R.T."

dudsen (09-11-2002)
Kommentar
Fra : dudsen


Dato : 09-11-02 16:30

Lars Balker Rasmussen wrote:

> dudsen <dudsen@gjk.dk> writes:
>> hvorfor virker
>> foreach $line (@linier) {
>> print "dddaad";
>> }
>> ikke når
>> foreach $line (@linier) {
>> print "$line";
>> }
>> virker fint.
>
> Definer virker. Begge to gør da lige det man måtte forvente.
>
> Hvis @linier indeholder linier fra en fil, er der sikkert \n i
> slutningen af hver. Prøv med 'print "ddaad\n";' i stedet.

Det måtte være et eller andet så trivielt men sådan er det når man
ser sig blind på noget.
Det var den manglende newline jeg havde lige glemt at perl ikke selv
fandt ud af den slags.

--
Daniel Udsen
Diplomacy is the art of letting the other party have things your way.
-- Daniele Vare

Peter Makholm (09-11-2002)
Kommentar
Fra : Peter Makholm


Dato : 09-11-02 14:50

dudsen <dudsen@gjk.dk> writes:

> hvorfor virker
> foreach $line (@linier) {
> print "dddaad";
> }
> ikke når

Begge dele virker fint her:

brother@mac$ perl -e '@linjer = qw(foo bar baz); foreach $linje (@linjer) { print "$linje\n" }'
foo
bar
baz
brother@mac$ perl -e '@linjer = qw(foo bar baz); foreach $linje (@linjer) { print "dadada\n" }'
dadada
dadada
dadada
brother@mac$

Det eneste jeg kan komme på er hvis din shell/whatever gør underlige
ting med linjer der ikke afsluttes med \n og linjerne i @linier ikke
afsluttes af \n.

--
Peter Makholm | Wisdom has two parts:
peter@makholm.net | 1) having a lot to say, and
http://hacking.dk | 2) not saying it

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste