Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: Unwrapping values in a template

by synistar (Pilgrim)
on Nov 14, 2003 at 16:03 UTC ( [id://307079]=note: print w/replies, xml ) Need Help??


in reply to Unwrapping values in a template

Here is a brute force approach (multiple regexs):

#! perl -w use Data::Dumper; open(TMPL, "<my.template") or die $!; my $tmpl = 0; my $last; my %hash; for (<TMPL>) { next if /^#/; if (m!<template>!) { $tmpl = 1; next; } elsif (m!</template>!) { if (%hash) { $Data::Dumper::Sortkeys = 1; print "Result: ", Dumper(\%hash); } else { print "Bad template: $tmpl\n"; } } elsif ($tmpl) { if(/^\s+(\w+)\s*=\s*$/) { $hash{$1} = ''; $last = $1; } elsif(/^\s+(\w+)\s*=\s*(\S+)\s*$/) { if ($2 or $2 == 0) { $hash{$1} = $2; } } elsif (/^\s*(\S+[^=])\s*$/) { $hash{$last} = $1; } } } close TMPL;

Not too elegant but it is fairly clear and works. Needs more code to handle all edge cases though.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://307079]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (4)
As of 2024-04-25 07:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found