Thank you all for the suggestions. Based on discussion here, I went back and
looked
at my perl reference book. It looks like here-doc serves the purpose well.
The answer
was there but I did not know where to look ..

Thanks ..

PS: BTW Boliger, there is nothing wrong with your english. It is better than
mine for sure ..

On 2/8/07, D. Bolliger <[EMAIL PROTECTED]> wrote:

Sharan Basappa am Mittwoch, 7. Februar 2007 16:13:
> On 2/7/07, Rob Dixon <[EMAIL PROTECTED]> wrote:
> > Sharan Basappa wrote:
> > > On 2/6/07, Tom Phoenix <[EMAIL PROTECTED]> wrote:
> > >> On 2/6/07, Sharan Basappa <[EMAIL PROTECTED]> wrote:
> > >>> Question is how to embed text in a perl program instead of reading
it
> > >>> from a file or initializing the text in a string variable.
[snipped]
> > >> > while (<MY_BLOCK>)
> > >> >
> > >> > __MY_BLOCK__
> > >>
> > >> It looks as if you've seen the special DATA filehandle and the
> > >> __DATA__ marker; but those don't generalize like that. Nice try,
> > >> though. (If you change those back to DATA in your program, I think
it
> > >> will do what you expected. Consider adding 'use strict' and 'use
> > >> warnings', though.)
> > >
> > > What if I wanted to have multiple embedded (and separate) texts
> > > embedded in
> > > my program.
[snipped]
> > What the DATA filehandle does is to allow the Perl program to read
from
> > its own
> > source file. The read position is set initially to the point after the
> > end of
> > the program marked by the __END__ tag (as a mnemonic the __DATA__ tag
> > serves the
> > same purpose). Since a program has only one source file there can be
only
> > one
> > such magic filehandle. (As a point of interest, it's possible for a
> > program to
> > read its own source by issuing "seek DATA, 0, 0" before reading from
the
> > handle.)
> >
> > It's clearly possible to add markers within the data so the the
program
> > can
> > split it up itself, but how about explaining a little more about what
you
> > want
> > to do: I'm sure the list can come up with an appropriate solution for
> > you. What
> > is wrong, for instance, with using real separate data files?
>
> Actually I am writing a script that actually spits out various make
> template files.
> People then fill in these templates with neccessary details and use
them.
> The thing is that there are atleast 4-5 different templates and
depending
> on the
> cmd line arg, the script needs to output one of these template files.
> Definitely
> I would not like to open a file, read it and then output it since moving
> the script
> (to another project etc) would mean that the files need to be moved too.
> Having this information in the same script would make it self contained.
>
> Does that make sense...


Hello Sharan

Another possibility to avoid reading external data that would have to be
moved
with the script could be (but this depends a bit from the details) to
design
a template base class and, for every template, a separate subclass.

The script itself could be very short, and would load (use) the
appropriate
subclass determined by the argument(s). To add a new template, you would
not
have to edit an existent file, but just add a new subclass.

No need to move the modules around for a new project on the same machine;
and
for new projects on another machine, you could pack the modules into a
distribution and install it with a few make commands.

When going this way, chances are that you don't have to deal with
redundant
data at different places in case of changes/additions. From this point of
view, a "self contained script" could be a disadvantage.

This may be overkill; but if there's a possibility that the whole thing
had to
be expanded in the future, it's maybe not.

Sorry for my english; I hope I did not miss an important point and my
suggestions makes some sense.

:-)

Dani

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/



Reply via email to