G'day thonny,
Welcome to the Monastery.
It seems to me that you've taken code from elsewhere and just added it to your script without understanding what it does.
-
use lib; —
What do think this does?
It looks like you don't even need this line (or a variation of it).
See the lib documentation.
-
Excel::Writer::XLSX->new(...); —
You should be checking that this worked (i.e. file found, could be opened, etc.).
See "Excel::Writer::XLSX new()" for more about that.
-
my $col = 0; —
This never changes, i.e. it's invariant, so why use a variable.
You could just use 0 in the write() method.
-
my $row = 1; —
When numbers are used, the $row (and also $col) in write($row, $col, ...) are zero-based.
Did you really want to start outputting to the second row?
See "Excel::Writer::XLSX Cell notation" for more about that.
-
chomp($line); —
This isn't a big problem but there's little point in carrying out processing on a line that you're about to skip.
Put this after the next ... statement.
That would better reflect the logical processing and indicate that you've actually considered this.
You may even get a minor speed improvement;
although, unless your input has a huge number of lines, that's likely to be negligible.
-
my $value = $line; —
What is the purpose of this?
You could just use $line in the write() method and scrap this statement.
-
$row++; —
This is more a matter of style and personal taste than any real problem.
I'd normally use write($row++, ...) and not include $row++; as a separate statement.
So, there's seven things you can look at and potentially improve.
Now, for us to provide you with help, you need to tell us what the problem is.
Show us a few representative lines from the uncompressed input.txt.gz file.
Show us how those lines appear in the spreadsheet.
Show us how you really wanted those lines to appear in the spreadsheet.
I also suggest you read "How do I post a question effectively?" to see the type of information that we need,
and how to present it (e.g. verbatim error messages within <code>...</code> tags).
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.