Chris Nandor <[EMAIL PROTECTED]> writes:
> In article <[EMAIL PROTECTED]>,
> [EMAIL PROTECTED] (Dan Kogai) wrote:
>
> > On Monday, Nov 25, 2002, at 01:05 Asia/Tokyo, Chris Nandor wrote:
> > > The bottom line was that it'd be nice to have a PerlIO filter for perl
> > > 5.8.x, so that MacPerl can execute Unix and Windows text files, and
> > > Mac OS X
> > > perl can execute Mac OS text files, etc. Patches are surely welcome!
> > > :-)
> >
> > One good question may be how to handle newlines in heretext, the only
> > part that really matters because that's the only exception to the fact
> > that newlines are nothing but whitespace from perl compiler's point of
> > view -- oops, shebang is another. When you feed MacPerl *.pl to MacOS
> > X, should linefeeds in heretext emit \015 or \012?
>
> I am talking here about taking (for example) a perl program with Mac OS
> newlines, and making it run under Unix perl. In order for that to happen,
> you need to translate all the CRs to LFs. That would include the CRs in the
> heretext, as well as in every literal string.
>
>
>
> > I am not sure which is lazier to simply apply
> >
> > # Any -> Unix
> > perl -i.bak -ple 's/\015\012|\015|012/\012/g' *.pl
> > # Any -> Mac
> > perl -i.bak -ple 's/\015\012|\015|012/\015/g' *.pl
> >
> > or teach camel the same trick....
>
> One of the main points of this is that some people will want the same files
> to be used in more than one context, such as sharing code between Windows
> and Unix perl over NFS, or sharing code between perl on Mac OS X and MacPerl
> under Mac OS or Classic. Right now, the only solution is to make copies, as
> you suggest.
>
Or use source filters:
package Filter::Any2Unix;
use Filter::Util::Call;
sub import {
if ($^O ne 'MacOS') {
filter_add(sub {
my($status) = filter_read();
if ($status > 0) {
s/\015\012|\015|\012/\012/g;
}
}
);
}
}
and then call the script with
perl -MFilter::Any2Unix script.pl
or embed "use Filter::Any2Unix" into the script.
Regards,
Slaven
--
Slaven Rezic - [EMAIL PROTECTED]
Tk-AppMaster: a perl/Tk module launcher designed for handhelds
http://tk-appmaster.sf.net