Attached you can find the code an a input file to try it.
 
I'm sorry if the code is not realy commented and if it is no real clear, but i have to delete some line because it is base on a database....
 
Now the program can run without any DB.
You can find even a profile for the program.
 
Thanks
 
Lorenzo
 
On 11/25/05, Chris Devers <[EMAIL PROTECTED]> wrote:
On Fri, 25 Nov 2005, Gary Stainburn wrote:

> Here's my 2peneth.
>
> Avoid regex.  While it's powerfull, it's also expensive.
>
> Short but sweet

And useful!

Because we know that regular expressions are the problem here, right?

Err, wait, we haven't seen any code, or any benchmarks, so we don't.

Efficient regexes run efficiently.

Inefficient regexes run inefficiently.

Measuring can help identify potential problems.

But in this case, we don't even know if that's where the problem lies.



--
Chris Devers

è—*B)¢O¯ùPÈ


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>



Attachment: in.dat
Description: Binary data

time elapsed (wall):   19.7287
time running program:  18.6327  (94.44%)
time profiling (est.): 1.0960  (5.56%)
number of calls:       92379

%Time    Sec.     #calls   sec/call  F  name
76.21   14.1993        0  14.199253  *  <other>
13.15    2.4506    10001   0.000245     main::SplitRowByLength
 5.42    1.0100    10001   0.000101     main::vldUDC
 0.95    0.1762    16000   0.000011     
main::fmtTLGInternationalFormatTelegramTEST
 0.84    0.1571     8000   0.000020     main::fmtTLGConvertDateTEST
 0.44    0.0823     8000   0.000010     main::fmtTLGATTR5_int_natTEST
 0.35    0.0659     8000   0.000008     main::fmtTLG_PILOGES_TEST
 0.34    0.0632     8000   0.000008     main::fmtTLGATTR2_int_natTEST
 0.32    0.0601     8000   0.000008     main::fmtTLG_NUMBER_PORTABILITY_TEST
 0.31    0.0582        1   0.058157     <anon>:UDC.pl:13
 0.27    0.0496        4   0.012397     DynaLoader::dl_load_file
 0.24    0.0445     8000   0.000006     main::fmtTLGEventTypeFIXTEST
 0.23    0.0423     8000   0.000005     main::setOutputCDRHeader
 0.11    0.0199        1   0.019945     <anon>:....6/PA-RISC2.0/IO/File.pm:117
 0.08    0.0153        1   0.015305     <anon>:.../PA-RISC2.0/Time/Piece.pm:12
 0.08    0.0153        1   0.015272     <anon>:...A-RISC2.0/Time/Seconds.pm:51
 0.08    0.0143        1   0.014297     <anon>:UDC.pl:14
 0.08    0.0142        1   0.014153     <anon>:....6/PA-RISC2.0/IO/File.pm:116
 0.06    0.0119        1   0.011866     <anon>:....6/PA-RISC2.0/IO/File.pm:118
 0.06    0.0111        4   0.002779     Exporter::as_heavy
 0.05    0.0097        1   0.009692     <anon>:...A-RISC2.0/IO/Seekable.pm:101
 0.04    0.0066        1   0.006575     <anon>:...PA-RISC2.0/Time/Seconds.pm:6
 0.03    0.0065        1   0.006464     <anon>:UDC.pl:12
 0.03    0.0060        1   0.005961     <anon>:...A-RISC2.0/IO/Seekable.pm:104
 0.03    0.0051        1   0.005072     <anon>:.../PA-RISC2.0/Time/Piece.pm:10
 0.02    0.0043        1   0.004273     <anon>:...lib/5.8.6/PA-RISC2.0/IO.pm:5
 0.02    0.0039        1   0.003905     <anon>:...l5/lib/5.8.6/Time/Local.pm:7
 0.02    0.0037       20   0.000186     Exporter::import
 0.02    0.0034        1   0.003411     <anon>:.../PA-RISC2.0/IO/Handle.pm:260
 0.02    0.0034        1   0.003355     <anon>:...A-RISC2.0/Time/Seconds.pm:26
 0.01    0.0027        3   0.000888     Exporter::export
 0.01    0.0026        1   0.002635     <anon>:....6/PA-RISC2.0/IO/File.pm:115
 0.01    0.0012       25   0.000048     constant::import
 0.01    0.0011        1   0.001141     DBI::bootstrap
 0.01    0.0011       84   0.000013     DBI::_install_method
 0.00    0.0008        2   0.000408     DynaLoader::bootstrap
 0.00    0.0007        4   0.000172     DynaLoader::dl_find_symbol
 0.00    0.0006        2   0.000308     XSLoader::load
 0.00    0.0006        1   0.000597     <anon>:.../5.8.6/PA-RISC2.0/DBI.pm:254
 0.00    0.0005        5   0.000090     vars::import
 0.00    0.0004        2   0.000208     warnings::register::import
 0.00    0.0004        1   0.000361     IO::bootstrap
 0.00    0.0003        4   0.000083     overload::OVERLOAD
 0.00    0.0003       13   0.000020     strict::unimport
 0.00    0.0002        1   0.000237     DBI::setup_driver
 0.00    0.0002        4   0.000045     Fcntl::AUTOLOAD
 0.00    0.0002        1   0.000172     Exporter::Heavy::_push_tags
 0.00    0.0001        4   0.000035     overload::import
 0.00    0.0001       12   0.000011     strict::bits
 0.00    0.0001       17   0.000006     strict::import
 0.00    0.0001        1   0.000083     <anon>:UDC.pl:0
 0.00    0.0001        1   0.000083     Config::fetch_string
 0.00    0.0001        4   0.000019     DynaLoader::dl_install_xsub
 0.00    0.0001        1   0.000077     main::printOutputFileHeader
 0.00    0.0001        1   0.000076     <anon>:.../PA-RISC2.0/Time/Piece.pm:43
 0.00    0.0001        1   0.000073     <anon>:...PA-RISC2.0/Time/Piece.pm:485
 0.00    0.0001        1   0.000072     <anon>:...PA-RISC2.0/IO/Seekable.pm:98
 0.00    0.0001        4   0.000017     Fcntl::constant
 0.00    0.0001        1   0.000067     <anon>:...PA-RISC2.0/Time/Piece.pm:507
 0.00    0.0001        1   0.000056     <anon>:UDC.pl:15
 0.00    0.0001        1   0.000056     Time::Piece::bootstrap
 0.00    0.0001        1   0.000055     <anon>:.../PA-RISC2.0/IO/Handle.pm:254
 0.00    0.0001        4   0.000014     DynaLoader::dl_undef_symbols
 0.00    0.0001        1   0.000054     <anon>:...lib/5.8.6/PA-RISC2.0/IO.pm:6
 0.00    0.0001        1   0.000054     <anon>:...l5/lib/5.8.6/Time/Local.pm:4
 0.00    0.0001        1   0.000054     DBD::_::common::trace_msg
 0.00    0.0001        1   0.000053     <anon>:...ib/5.8.6/Exporter/Heavy.pm:3
 0.00    0.0001        1   0.000052     <anon>:...PA-RISC2.0/Time/Piece.pm:538
 0.00    0.0001        1   0.000051     <anon>:...l5/lib/5.8.6/FileHandle.pm:4
 0.00    0.0001        4   0.000013     warnings::register::mkMask
 0.00    0.0001        1   0.000051     <anon>:....6/PA-RISC2.0/IO/File.pm:114
 0.00    0.0000        1   0.000049     <anon>:.../lib/5.8.6/SelectSaver.pm:38
 0.00    0.0000        1   0.000048     <anon>:...6/PA-RISC2.0/Time/Piece.pm:5
 0.00    0.0000        1   0.000048     <anon>:.../PA-RISC2.0/Time/Piece.pm:11
 0.00    0.0000        1   0.000047     <anon>:.../PA-RISC2.0/IO/Handle.pm:258
 0.00    0.0000        1   0.000047     <anon>:.../PA-RISC2.0/IO/Handle.pm:255
 0.00    0.0000        1   0.000046     <anon>:...PA-RISC2.0/Time/Seconds.pm:4
 0.00    0.0000        1   0.000046     Time::Piece::import
 0.00    0.0000        1   0.000046     Exporter::export_ok_tags
 0.00    0.0000        1   0.000046     FileHandle::import
 0.00    0.0000        1   0.000046     <anon>:...l5/lib/5.8.6/overload.pm:135
 0.00    0.0000        1   0.000045     <anon>:.../PA-RISC2.0/IO/Handle.pm:257
 0.00    0.0000        1   0.000045     <anon>:.../5.8.6/PA-RISC2.0/DBI.pm:481
 0.00    0.0000        1   0.000045     <anon>:...PA-RISC2.0/Time/Piece.pm:396
 0.00    0.0000        1   0.000044     <anon>:.../lib/5.8.6/SelectSaver.pm:39
 0.00    0.0000        1   0.000044     Fcntl::bootstrap
 0.00    0.0000        1   0.000044     <anon>:...erl5/lib/5.8.6/constant.pm:5
 0.00    0.0000        1   0.000043     <anon>:...lib/5.8.6/PA-RISC2.0/IO.pm:8
 0.00    0.0000        1   0.000043     <anon>:...l5/lib/5.8.6/Time/Local.pm:9
 0.00    0.0000        1   0.000043     <anon>:...6/PA-RISC2.0/Time/Piece.pm:6
 0.00    0.0000        1   0.000042     <anon>:.../PA-RISC2.0/IO/Handle.pm:601
 0.00    0.0000        1   0.000042     <anon>:...5.8.6/PA-RISC2.0/DBI.pm:1301
 0.00    0.0000        1   0.000042     <anon>:...rl5/lib/5.8.6/File/Spec.pm:4
 0.00    0.0000        1   0.000042     <anon>:...l5/lib/5.8.6/Time/Local.pm:5
 0.00    0.0000        1   0.000042     <anon>:.../PA-RISC2.0/Time/Piece.pm:38
 0.00    0.0000        1   0.000041     <anon>:...5.8.6/PA-RISC2.0/DBI.pm:1727
 0.00    0.0000        1   0.000041     <anon>:...A-RISC2.0/Time/Seconds.pm:40
 0.00    0.0000        1   0.000041     <anon>:...A-RISC2.0/Time/Seconds.pm:34
 0.00    0.0000        1   0.000041     <anon>:.../PA-RISC2.0/Time/Piece.pm:45
 0.00    0.0000        1   0.000041     <anon>:.../PA-RISC2.0/Time/Piece.pm:13
 0.00    0.0000        1   0.000041     <anon>:.../5.8.6/PA-RISC2.0/DBI.pm:620
 0.00    0.0000        1   0.000041     <anon>:...A-RISC2.0/Time/Seconds.pm:35
 0.00    0.0000        1   0.000041     <anon>:.../PA-RISC2.0/Time/Piece.pm:42
 0.00    0.0000        1   0.000041     <anon>:.../5.8.6/PA-RISC2.0/DBI.pm:961
 0.00    0.0000        1   0.000041     <anon>:.../PA-RISC2.0/Time/Piece.pm:39
 0.00    0.0000        1   0.000040     <anon>:UDC.pl:19
 0.00    0.0000        1   0.000040     <anon>:...A-RISC2.0/Time/Seconds.pm:39
 0.00    0.0000        1   0.000040     <anon>:...A-RISC2.0/Time/Seconds.pm:36
 0.00    0.0000        1   0.000040     <anon>:...ib/5.8.6/File/Spec/Unix.pm:4
 0.00    0.0000        1   0.000040     <anon>:...PA-RISC2.0/Time/Seconds.pm:5
 0.00    0.0000        1   0.000040     <anon>:.../PA-RISC2.0/Time/Piece.pm:47
 0.00    0.0000        1   0.000040     <anon>:.../PA-RISC2.0/Time/Piece.pm:48
 0.00    0.0000        1   0.000039     <anon>:.../PA-RISC2.0/Time/Piece.pm:41
 0.00    0.0000        1   0.000039     <anon>:...A-RISC2.0/Time/Seconds.pm:33
 0.00    0.0000        1   0.000039     <anon>:...A-RISC2.0/Time/Seconds.pm:27
 0.00    0.0000        1   0.000039     <anon>:...A-RISC2.0/Time/Seconds.pm:30
 0.00    0.0000        1   0.000039     <anon>:...A-RISC2.0/Time/Seconds.pm:32
 0.00    0.0000        1   0.000039     <anon>:...A-RISC2.0/Time/Seconds.pm:28
 0.00    0.0000        1   0.000039     <anon>:.../PA-RISC2.0/Time/Piece.pm:44
 0.00    0.0000        1   0.000039     <anon>:.../PA-RISC2.0/Time/Piece.pm:46
 0.00    0.0000        1   0.000039     <anon>:...erl5/lib/5.8.6/constant.pm:3
 0.00    0.0000        1   0.000039     <anon>:...ib/5.8.6/Exporter/Heavy.pm:4
 0.00    0.0000        1   0.000039     <anon>:...rl5/lib/5.8.6/File/Spec.pm:3
 0.00    0.0000        1   0.000039     <anon>:.../5.8.6/PA-RISC2.0/DBI.pm:736
 0.00    0.0000        1   0.000039     <anon>:...ib/5.8.6/File/Spec/Unix.pm:3
 0.00    0.0000        1   0.000039     <anon>:.../5.8.6/PA-RISC2.0/DBI.pm:258
 0.00    0.0000        1   0.000039     <anon>:...rl5/lib/5.8.6/constant.pm:99
 0.00    0.0000        1   0.000038     <anon>:.../PA-RISC2.0/Time/Piece.pm:40
 0.00    0.0000        1   0.000038     <anon>:...5/lib/5.8.6/FileHandle.pm:46
 0.00    0.0000        1   0.000038     <anon>:.../5.8.6/File/Spec/Unix.pm:136
 0.00    0.0000        1   0.000038     <anon>:....6/PA-RISC2.0/IO/File.pm:112
 0.00    0.0000        1   0.000038     <anon>:.../5.8.6/PA-RISC2.0/DBI.pm:895
 0.00    0.0000        1   0.000038     <anon>:...A-RISC2.0/Time/Seconds.pm:29
 0.00    0.0000        1   0.000037     <anon>:...5.8.6/PA-RISC2.0/DBI.pm:1377
 0.00    0.0000        1   0.000037     <anon>:...5/lib/5.8.6/Time/Local.pm:78
 0.00    0.0000        1   0.000037     <anon>:...l5/lib/5.8.6/Time/Local.pm:6
 0.00    0.0000        1   0.000037     <anon>:...A-RISC2.0/Time/Seconds.pm:31
 0.00    0.0000        1   0.000037     <anon>:.../5.8.6/PA-RISC2.0/DBI.pm:798
 0.00    0.0000        1   0.000037     <anon>:.../5.8.6/PA-RISC2.0/DBI.pm:769
 0.00    0.0000        1   0.000036     <anon>:.../lib/5.8.6/Time/Local.pm:137
 0.00    0.0000        1   0.000036     <anon>:...lib/5.8.6/PA-RISC2.0/IO.pm:7
 0.00    0.0000        1   0.000036     <anon>:.../5.8.6/PA-RISC2.0/DBI.pm:262
 0.00    0.0000        1   0.000036     <anon>:...PA-RISC2.0/IO/Seekable.pm:99
 0.00    0.0000        1   0.000036     <anon>:...5/lib/5.8.6/Time/Local.pm:52
 0.00    0.0000        1   0.000036     <anon>:...5.8.6/PA-RISC2.0/DBI.pm:1430
 0.00    0.0000        5   0.000007     DBI::var::TIESCALAR
 0.00    0.0000        1   0.000033     Exporter::Heavy::_rebuild_cache
 0.00    0.0000        1   0.000032     warnings::import
 0.00    0.0000        1   0.000031     Config::FETCH
 0.00    0.0000        6   0.000005     UNIVERSAL::isa
 0.00    0.0000        1   0.000029     <anon>:...PA-RISC2.0/IO/Seekable.pm:97
 0.00    0.0000        1   0.000028     <anon>:...perl5/lib/5.8.6/Symbol.pm:82
 0.00    0.0000        1   0.000028     <anon>:...l5/lib/5.8.6/FileHandle.pm:3
 0.00    0.0000        1   0.000028     <anon>:...l/5.8.6/PA-RISC2.0/DBI.pm:13
 0.00    0.0000        1   0.000027     Config::import
 0.00    0.0000        1   0.000026     main::initializeParameters
 0.00    0.0000        1   0.000024     Time::Local::_daygm
 0.00    0.0000        1   0.000023     <anon>:....6/PA-RISC2.0/IO/File.pm:111
 0.00    0.0000        1   0.000021     <anon>:.../PA-RISC2.0/IO/Handle.pm:259
 0.00    0.0000        3   0.000007     <anon>::
 0.00    0.0000        1   0.000020     <anon>:...5.8.6/PA-RISC2.0/Fcntl.pm:61
 0.00    0.0000        1   0.000019     <anon>:.../5.8.6/PA-RISC2.0/DBI.pm:151
 0.00    0.0000        1   0.000019     <anon>:.../5.8.6/PA-RISC2.0/DBI.pm:149
 0.00    0.0000        1   0.000018     <anon>:.../5.8.6/PA-RISC2.0/DBI.pm:150
 0.00    0.0000        1   0.000017     <anon>:...erl5/lib/5.8.6/constant.pm:4
 0.00    0.0000        2   0.000006     DynaLoader::dl_load_flags
 0.00    0.0000        2   0.000006     integer::import
 0.00    0.0000        3   0.000004     integer::unimport
 0.00    0.0000        1   0.000003     DBI::DBI_tie::TIEHASH

Attachment: UDC.pl
Description: Binary data

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>

Reply via email to