Template(3) User Contributed Perl Documentation Template(3)NAMESystemC::Template - Replace text in a file with new text
SYNOPSIS
use SystemC::Template;
my $tpl = new SystemC::Template;
$tpl->read (filename=>'filename',
ppline=>1,
);
$tpl->print_ln ("newfilename", 100, "inserted: This is line 100 of newfile\n");
foreach my $lref (@{$tpl->src_text()}) {
$tpl->print_ln ($lref->[1], $lref->[2], $lref->[3]);
}
$tpl->write (filename=>'new_filename',);
DESCRIPTIONSystemC::Template is the class that SystemC uses to read files and
write the file .sp files and expand the contents of them.
It is similar to Text::Template, but uses arrays for speed, understands
how to create #line comments for the C preprocessor, and not to write
the file if nothing has changed.
First $read is called, which loads the $self->src_text() as a array of
[$self, filename, lineno, text] structures. The external code then
manipulates this array and loads $self->out_text() probably using
$self->printf(). $self->write() is then called to write the results.
For convenience, most methods can be called as non-method calls, this
will use the template that was most recently called with write. (This
enables functions to simply call SystemC::Template::print and not need
to pass the class around.)
ACCESSORS
$self->name
The filename read.
$self->ppline
Insert #line comments for GCC. If set to 'basename' strip the
directory off the filename.
MEMBER FUNCTIONS
$self->read
Pass a hash of parameters. Reads the filename=> filename parameter
and loads the internal structures.
$self->write
Pass a hash of parameters. Writes the filename=> parameter with
the contents of the out_text() array.
$self->print_ln (filename, lineno, text...)
Adds to the out_text the filename, line and given text.
$self->print (text...)
Adds to the out_text the given text.
$self->printf (format, params...)
Adds to the out_text the given formatted text.
DISTRIBUTION
SystemPerl is part of the <http://www.veripool.org/> free SystemC
software tool suite. The latest version is available from CPAN and
from <http://www.veripool.org/systemperl>.
Copyright 2001-2010 by Wilson Snyder. This package is free software;
you can redistribute it and/or modify it under the terms of either the
GNU Lesser General Public License Version 3 or the Perl Artistic
License Version 2.0.
AUTHORS
Wilson Snyder <wsnyder@wsnyder.org>
SEE ALSO
SystemC::Netlist, SystemC::Netlist::File, Text::Template
perl v5.14.1 2010-11-03 Template(3)