in reply to Perl not recognizing a simple string
Hello joshywashy,
Without <code>...</code> tags around your data, we can only guess at how it’s formatted. If each each record occupies a separate line, like this:
0x0 in mmgsdi_evt_cb mmgsdi X mmgsdi Y 0xd in mmgsdi_evt_cb 0x1a in mmgsdi_evt_cb ...
then your approach should work fine (once the syntax error is fixed, of course). But if, as I suspect, the data is all on one line, then you need a more sophisticated strategy. Here is one approach:
#! perl use strict; use warnings; my ($process) = <DATA>; # slurp in all the data at once # Use a look-ahead assertion while ($process =~ /(0x[0-9a-f]{1,2})(.*?)(?=0x[0-9a-f]{1,2}|\Z)/gi) { my ($hex, $text) = ($1, $2); print "Match found: $hex$text\n" if $text =~ /in mmgsdi_evt_cb/; } print "Finished\n"; __DATA__ 0x0 in mmgsdi_evt_cb mmgsdi X mmgsdi Y 0xd in mmgsdi_evt_cb 0x1a in mm +gsdi_evt_cb 0xe in mmgsdi_evt_cb 0xf in mmgsdi_evt_cb mmgsdi Z 0x13 i +n mmgsdi_evt_cb mmgsdi Z mmgsdi Z
Output:
15:31 >perl 882_SoPW.pl Match found: 0x0 in mmgsdi_evt_cb mmgsdi X mmgsdi Y Match found: 0xd in mmgsdi_evt_cb Match found: 0x1a in mmgsdi_evt_cb Match found: 0xe in mmgsdi_evt_cb Match found: 0xf in mmgsdi_evt_cb mmgsdi Z Match found: 0x13 in mmgsdi_evt_cb mmgsdi Z mmgsdi Z Finished 15:51 >
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
|
|---|