Hello,
I have a text file in a columnar format. There are seven entries in a row, separated by tabs.
eg.
1 23 555 34 Corporation Index Sediment
This has to be tagged as:
<no>1</no><code>23</code><set>555</set><id>34</id><status>Corporation</status><value>Index</value><type>Sediment</type>
I have stored the file contents to $_ and I am using the regex
$_=~s/([^\t]*)\t([^\t]*)\t([^\t]*)\t([^\t]*)\t([^\t]*)\t([^\t]*)\t([^\t]*)\t/<no>$1<\/no><code>$2<\/code><set>$3<\/set><id>$4<\/id><status>$5<\/status><value>$6<\/value><type>$7<\/type>/g;
I am not able to get the text tagged. Can anyone help me out to get my desired codes?
Thanks,
Sriram
> 1 23 555 34 Corporation Index Sediment
>
> This has to be tagged as:
> <no>1</no><code>23</code><set>555</set><id>34</id><status>Corporation</statu
> s><value>Index</value><type>Sediment</type>
#!/usr/bin/perl
use strict;
use warnings;
# These are the desired tags.
my @tags = qw(no code set id status value type);
# The input.
my $line = "1 23 555 34 Corporation Index Sediment";
# Split into fields.
my @flds = split(/\t/, $line);
# Process the tags, mapping each with an actual value into a result array, and join.
my $result = join("",
map { "<$_>".shift(@flds)."</$_>"} @tags);
# Show it.
print $result, "\n";
Hapy hacking,
-- Johan