Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: XML File Slicing Golf(ish)

by ZZamboni (Curate)
on Jun 20, 2001 at 03:39 UTC ( #89866=note: print w/replies, xml ) Need Help??


in reply to XML File Slicing Golf(ish)

This is what I came up with. It does essentially the same as your program, but it's a little bit shorter. Notice that I dropped the close altogether, because open automatically closes the file handle if it was previously opened (see perlopentut -- I wouldn't consider this a good programming practice, but I'm assuming this is a one-shot program here), so you don't have to keep track of whether file is open. Also, you don't need to read the whole file in memory at once.
use strict; my $n="0000"; while (<>) { if (/^<\?xml version/) { open OF, ">outfile_$n.xml" or die "open: $!\n"; $n++; } print OF $_; }

--ZZamboni

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://89866]
help
Chatterbox?
[moritz]: choroba in python I use jsonschema
[moritz]: I'm sure there's a Perl implementation of it too
[choroba]: it seems Kelp and similar help you a lot with dispatching, but how to do something similar with contents?
[moritz]: like JSON::Schema
[Corion]: ambrus++ # more bugs than lines
[Corion]: That's like "works on my machine" ;-)
[choroba]: I mean, I'd like to say "this path should run this sub, but first it should check the user is authenticated, has the following permissions, and the contents is valid against a given schema
[ambrus]: no, that means I haven't even tried to run it, might not even parse
[ambrus]: so it doesn't work on my machine
[choroba]: i.e. I know JSON::Schema, I'm just curious whether there's a ready solution to plug it into a web service

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (11)
As of 2016-12-08 12:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (141 votes). Check out past polls.