Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

comment on

( [id://3333] : superdoc . print w/replies, xml ) Need Help??

I would second scooterm's comment. In addition, the answers above dont really solve your problem:

  • You dont want to be cutting and pasting between an HTML editor and Perl editor
  • You dont want to be heavily modifying the HTML (adding special variable tags or whatever)
  • You do not want to be heavily modifying the existing Perl code (rewriting to a module API or adding half-assed templating subroutines)

To sum up, by the time perl starts executing you want it to run exactly as your program does now. But for you (while developing) you want the html fragments in their own file, to edit with Frontpage and use Perl's existing $variable syntax.

Consider using a source filter.

package Insert; use Filter::Simple; sub slurp { my $file = shift; my ($str, $in); open($in, $file) or die $!; local $/ = undef; $str = <$in>; close $in; return $str; } FILTER { 1 while $_ =~ s/INSERT\(\s*?["']?([^"']*?)["']?\s*?\)/slurp($1)/e; + } 1;

This will paste the contents of files into your script before perl begins executing.

  1. Save the above code with the rest of your program as Insert.pm
  2. add use Insert; to the top of your script
  3. Cut the contents of each heredoc and paste into a new file
  4. Replace the heredoc contents with INSERT("/path/to/that/file")

So this

my $variable = "World!"; print <<EOT; Hello $variable EOT

would become this

use Insert; my $variable = "World!"; print <<EOT; INSERT("includeme.txt") EOT
With the file includeme.txt being
Hello $variable

This will do what you want - but be careful what you wish for.

At least you can concentrate on hacking the HTML rather than adapting existing code to an API or debugging a broken wheel.

Once you get the HTML the way you want it, you can simply paste it back into the code to get better performance.




time was, I could move my arms like a bird and...

In reply to Re: inserting HTML file in a PERL script by Ctrl-z
in thread inserting HTML file in a PERL script by thetallblondguy

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.