usr
/
lib64
/
perl5
/
vendor_perl
/
DBI
/
Go to Home Directory
+
Upload
Create File
root@0UT1S:~$
Execute
By Order of Mr.0UT1S
[DIR] ..
N/A
[DIR] Const
N/A
[DIR] DBD
N/A
[DIR] Gofer
N/A
[DIR] ProfileDumper
N/A
[DIR] SQL
N/A
[DIR] Util
N/A
Changes.pm
121.64 KB
Rename
Delete
DBD.pm
123.57 KB
Rename
Delete
Profile.pm
31.89 KB
Rename
Delete
ProfileData.pm
19.53 KB
Rename
Delete
ProfileDumper.pm
10.14 KB
Rename
Delete
ProfileSubs.pm
1.14 KB
Rename
Delete
PurePerl.pm
37.69 KB
Rename
Delete
package DBI::ProfileSubs; our $VERSION = "0.009396"; =head1 NAME DBI::ProfileSubs - Subroutines for dynamic profile Path =head1 SYNOPSIS DBI_PROFILE='&norm_std_n3' prog.pl This is new and still experimental. =head1 TO DO Define come kind of naming convention for the subs. =cut use strict; use warnings; # would be good to refactor these regex into separate subs and find some # way to compose them in various combinations into multiple subs. # Perhaps via AUTOLOAD where \&auto_X_Y_Z creates a sub that does X, Y, and Z. # The final subs always need to be very fast. # sub norm_std_n3 { # my ($h, $method_name) = @_; local $_ = $_; s/\b\d+\b/<N>/g; # 42 -> <N> s/\b0x[0-9A-Fa-f]+\b/<N>/g; # 0xFE -> <N> s/'.*?'/'<S>'/g; # single quoted strings (doesn't handle escapes) s/".*?"/"<S>"/g; # double quoted strings (doesn't handle escapes) # convert names like log20001231 into log<N> s/([a-z_]+)(\d{3,})\b/${1}<N>/ig; # abbreviate massive "in (...)" statements and similar s!((\s*<[NS]>\s*,\s*){100,})!sprintf("$2,<repeated %d times>",length($1)/2)!eg; return $_; } 1;
Save