in reply to Re: break-down ranges
in thread break-down ranges

That is exactly what I was looking for. Thanks! Could I ask you for another favour, since I am not a programmer? The file that I need to parse holds multiple lines with a record-id followed by 4 spaces followed by the string with inventorynumbers. For example: 123 ph1-3;25;t3 234 45;67-69 345 t200 What I need to end up with is a file that looks like this: 123 ph1 123 ph2 123 ph3 123 25 123 t3 234 45 234 67 234 68 234 69 345 t200 So, I would like to know is how to write a Perl script that reads a file line by line, breaks down each line in record-id followed by inventorynumber for each inventory number in the range given for that record-id and does that for each record-id. I take it that I have to use an array for that, and voila, I am already out of my depth. If you think I am too cheeky, just say so. Eventually I will figure out how to read the contents of a file and how to use arrays. It is just that I amm pressed for time. I would never have figured out how to use Perl to break-down ranges though : )

Replies are listed 'Best First'.
Re^3: break-down ranges
by davido (Cardinal) on Jul 04, 2011 at 05:52 UTC

    Teaching is free here, and I am happy with that arrangement, because it means learning here is free as well. I don't get a warm fuzzy about doing work for free though.

    Read your file in a loop. Chomp inside the loop, then capture into $1 with m/^(\d+)\s{4}/. Save what's in $1 for later. Substitute away that initial stuff so that it doesn't get in the way of your subsequent parsing. Then just prepend what you saved up front per line to the front of your output for that line after parsing the ranges.

    Before making your next post make sure to have a look at Writeup Formatting Tips. And please be sure to show us the code you've tried, and where you're stuck in the future. Welcome to the Monastery, a home for Seekers of Perl Wisdom.


    Dave

      I wish I could give davido a double ++: first, for linking to the formatting tips (without which the 'specification' of Re^2: break-down ranges looks like mush); second, for gently pointing out that this is SoPW and not SoPPC (Seekers of Perl Production Code). The fact that davido then even went on to give some valuable coding advice in the face of goorgi01's assertion of a lack of time or experience to actually bother with it probably merits yet a third ++.