in reply to split function against a HTML code
Using Data::Dumper and your code, I was able to get what I interpretted as your reason for believing the code did not work: when the line was read in, it was split into a total of 7 segments (the inline version having been split into 6).
When read in from a file, unless cleaned up (via chomp() or similar), the line contains a line ending sequence (such as "\n", "\r\n", or "\r\r", depending on platform). This line ending, appearing after the last '>', would result in an extra segment in the split() results. Try chomping the string, and see if that gives you the results you desire. (You may also want to look at the content of the array with Data::Dumper or a similar module to get a better idea of what is occurring.)
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $string = qq[<th width="200px">KPI</th><th width="100px">Type</th>< +th width="75px">Data Type</th>]; my @result = split('>',$string); print Data::Dumper->Dump([\@result], [qw(*result1)]), qq{\n}; open(DF, "test.dat") or die $!; $string = <DF>; close DF; @result = split('>',$string); print Data::Dumper->Dump([\@result], [qw(*result2)]), qq{\n}; chomp $string; @result = split('>',$string); print Data::Dumper->Dump([\@result], [qw(*result3)]), qq{\n};
Hope that helps.
|
|---|