/ 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
Når man nu bare ikke vil bruge chomp
Fra : Morten Guldager


Dato : 08-03-05 19:49

Hejsa,

Se lige her, og kom så med en forklaring:

Shell# echo -ne 'A\t\n' | od -tx1
0000000 41 09 0a

Altså 3 bytes, et stort A, en TAB og en LF

Shell# echo -ne 'A\t\n' | perl -pne 's/\s$//' | od -tx1
0000000 41 0a

Fjernede det midterste tegn, TAB'en.

Jeg havde forventet at det var LF'en der var røget.

Nogen der kan forklare hvad jeg har misforstået?


/Morten

 
 
Peter Makholm (08-03-2005)
Kommentar
Fra : Peter Makholm


Dato : 08-03-05 20:12

Morten Guldager <Morten.Guldager@gmail.com> writes:

> Shell# echo -ne 'A\t\n' | perl -pne 's/\s$//' | od -tx1
> 0000000 41 0a
>
> Fjernede det midterste tegn, TAB'en.
>
> Jeg havde forventet at det var LF'en der var røget.
>
> Nogen der kan forklare hvad jeg har misforstået?

$ matcher før newlinen tilsidst. Fra perlre:

By default, the "^" character is guaranteed to match only the
beginning of the string, the "$" character only the end (or before
the newline at the end), and Perl does certain optimizations with
the assumption that the string contains only one line.

Hvis du er interesseret i at matche \n skal du gøre det eksplicit.

--
Peter Makholm | There are 10 kinds of people. Those who count in
peter@makholm.net | binary and those who don't
http://hacking.dk |

Adam Sjøgren (08-03-2005)
Kommentar
Fra : Adam Sjøgren


Dato : 08-03-05 20:36

On Tue, 08 Mar 2005 18:48:33 GMT, Morten wrote:

> Shell# echo -ne 'A\t\n' | perl -pne 's/\s$//' | od -tx1 0000000 41
> 0a

> Fjernede det midterste tegn, TAB'en.

> Jeg havde forventet at det var LF'en der var røget.

> Nogen der kan forklare hvad jeg har misforstået?

Hvad '$' matcher?

"$ Match the end of the line (or before newline at the end)"

Måske er det '\z' du gerne vil have?

"\z Match only at end of string"

Se perldoc perlre.


Mvh.

--
"It troo! Dat darn Kahlfin stole ma spacechip!" Adam Sjøgren
asjo@koldfront.dk

Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407844
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste