K2LL33D SHELL

 Apache/2.4.7 (Ubuntu)
 Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64
 uid=33(www-data) gid=33(www-data) groups=33(www-data)
 safemode : OFF
 MySQL: ON | Perl: ON | cURL: OFF | WGet: ON
  >  / usr / lib / perl5 / DBI /
server ip : 104.21.89.46

your ip : 172.71.255.70

H O M E


Filename/usr/lib/perl5/DBI/ProfileSubs.pm
Size1.14 kb
Permissionrw-r--r--
Ownerroot : root
Create time27-Apr-2025 10:10
Last modified25-Jun-2013 05:03
Last accessed05-Jul-2025 20:21
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
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;