in reply to Re^2: Escape special characters for a LaTeX file
in thread Escape special characters for a LaTeX file

I thought $ works on Windows with carriage returns but it seems it doesn't...

It does. The OS-specific line terminator character(s) is/are translated somewhere in Perl's I/O layers to a common  \n newline character (which, IIRC, is 0x0a linefeed) — unless you're using binmode or some other form of raw read/write. The following code should execute identically (I believe) under any OS (I'm running this under Windoze 7):

c:\@Work\Perl\monks\marek1703>perl -wMstrict -le "use Data::Dump qw(pp); ;; for my $s (qq{foo\r\n}, qq{foo\r}, qq{foo\n}, qq{foo}) { if ($s =~ /foo$/) { print 'matched: ', pp $s; } else { print 'no match: ', pp $s; } } " no match: "foo\r\n" no match: "foo\r" matched: "foo\n" matched: "foo"
See definition of  $ in Regular Expressions - Metacharacters and its general discussion in perlre and perlretut. The match failures are due to the  \r stuck in the middle of things.

Also consider the following, which I also expect would work the same on any OS (it certainly works under Windows):

use warnings; use strict; while( <DATA> ) { if (/^"([^"]{2,})","(\d)","(.+)"$/) { chomp; my ($one, $two, $three) = ($1, $2, $3); print "matched: ``$_'' ('$one', '$two', '$three') \n"; } else { print "no match: ``$_'' \n"; } } __DATA__ "Sonntag, 26.05.2013 - 13:13:27","0","Lieber Herr % , & text text with + some %special characters" xyzzy "Mittwoch, 05.06.2013 - 18:12:09","0","Besten Dank, & hat prima geklap +pt. {Greetings!}"

Replies are listed 'Best First'.
Re^4: Escape special characters for a LaTeX file
by Anonymous Monk on Dec 14, 2014 at 16:24 UTC
    Well now I'm confused. Does his script do anything on Windows? (as in any output?)

      I never tried to run marek1703's script as originally posted (I didn't want to start a fight with that tarbaby), so I don't know. However, I think it should be possible to write a script that will run under any OS and will do what I think marek1703 wants done given that the  s/// problem is resolved!