pittmesh / ip-calculator

A browser-based calculator for determining PittMesh IP addresses
http://www.pittmesh.net/ipcalc
1 stars 0 forks source link

Port to perl #16

Closed jasonkhanlar closed 8 years ago

jasonkhanlar commented 8 years ago

Improved efficiency.

Currently passes through 356 tests from test script in 2 seconds, previously required 18 seconds with intel core i7-4790K CPU @ 4.00GHz

It should be more efficient when run on router hardwares, if perl is available.

colindean commented 8 years ago

Very nice optimization work.

Protagonistics commented 8 years ago

Perl package search results from a search on an openwrt router:

root@picom2-workhardpgh-2402:~# opkg list "perl"

perl - 5.20.0-6 - Perl is a stable, cross platform programming language. It is used for mission critical projects in the public and private sectors and is widely used to program web applications of all needs. root@picom2-workhardpgh-2402:~# opkg list "perl"

freeswitch-mod-perl - 1.5.13b-5173471 - FS Perl Language Interface module perl - 5.20.0-6 - Perl is a stable, cross platform programming language. It is used for mission critical projects in the public and private sectors and is widely used to program web applications of all needs.

perl-compress-bzip2 - 2.18-1 - Perl interface to bzip2 compression library perl-dbi - 1.631-1 - Database independent interface for Perl perl-html-parser - 3.71-1 - A collection of modules that parse HTML text documents perl-html-tagset - 3.20-1 - Data tables pertaining to HTML perl-html-tree - 3.23-2 - represent and create HTML syntax trees perl-lockfile-simple - 0.208-1 - Simple advisory file locking perl-net-telnet - 3.04-1 - Telnet client perl-test-harness - 3.32-1 - Perl Test Harness perl-uri - 1.64-1 - Manipulates and accesses URI strings perl-www - 5.837-2 - WWW client/server library for Perl (aka LWP) perl-www-curl - 4.17-1 - Perl bindings to libcurl perl-www-mechanize - 1.73-1 - Perl WWW Mechanize perlbase-anydbm-file - 5.20.0-6 - AnyDBM_File perl module perlbase-archive - 5.20.0-6 - Archive perl module perlbase-attribute - 5.20.0-6 - Attribute perl module perlbase-attributes - 5.20.0-6 - attributes perl module perlbase-autoloader - 5.20.0-6 - AutoLoader perl module perlbase-autosplit - 5.20.0-6 - AutoSplit perl module perlbase-autouse - 5.20.0-6 - autouse perl module perlbase-b - 5.20.0-6 - B perl module perlbase-base - 5.20.0-6 - base perl module perlbase-benchmark - 5.20.0-6 - Benchmark perl module perlbase-bigint - 5.20.0-6 - bigint perl module perlbase-bignum - 5.20.0-6 - bignum perl module perlbase-blib - 5.20.0-6 - blib perl module perlbase-bytes - 5.20.0-6 - bytes perl module perlbase-cgi - 5.20.0-6 - CGI perl module perlbase-charnames - 5.20.0-6 - charnames perl module perlbase-class - 5.20.0-6 - Class perl module perlbase-compress - 5.20.0-6 - Compress perl module perlbase-config - 5.20.0-6 - Config perl module perlbase-cpan - 5.20.0-6 - CPAN perl module perlbase-cwd - 5.20.0-6 - Cwd perl module perlbase-data - 5.20.0-6 - Data perl module perlbase-db - 5.20.0-6 - DB perl module perlbase-db-file - 5.20.0-6 - DB_File perl module perlbase-dbm-filter - 5.20.0-6 - DBM_Filter perl module perlbase-devel - 5.20.0-6 - Devel perl module perlbase-diagnostics - 5.20.0-6 - diagnostics perl module perlbase-digest - 5.20.0-6 - Digest perl module perlbase-dirhandle - 5.20.0-6 - DirHandle perl module perlbase-dumpvalue - 5.20.0-6 - Dumpvalue perl module perlbase-dumpvar - 5.20.0-6 - dumpvar perl module perlbase-dynaloader - 5.20.0-6 - DynaLoader perl module perlbase-encode - 5.20.0-6 - Encode perl module perlbase-encoding - 5.20.0-6 - encoding perl module perlbase-english - 5.20.0-6 - English perl module perlbase-env - 5.20.0-6 - Env perl module perlbase-errno - 5.20.0-6 - Errno perl module perlbase-essential - 5.20.0-6 - essential perl module perlbase-extutils - 5.20.0-6 - ExtUtils perl module perlbase-fatal - 5.20.0-6 - Fatal perl module perlbase-fcntl - 5.20.0-6 - Fcntl perl module perlbase-feature - 5.20.0-6 - feature perl module perlbase-fields - 5.20.0-6 - fields perl module perlbase-file - 5.20.0-6 - File perl module perlbase-filecache - 5.20.0-6 - FileCache perl module perlbase-filehandle - 5.20.0-6 - FileHandle perl module perlbase-filetest - 5.20.0-6 - filetest perl module perlbase-filter - 5.20.0-6 - Filter perl module perlbase-findbin - 5.20.0-6 - FindBin perl module perlbase-gdbm-file - 5.20.0-6 - GDBM_File perl module perlbase-getopt - 5.20.0-6 - Getopt perl module perlbase-hash - 5.20.0-6 - Hash perl module perlbase-i18n - 5.20.0-6 - I18N perl module perlbase-if - 5.20.0-6 - if perl module perlbase-integer - 5.20.0-6 - integer perl module perlbase-io - 5.20.0-6 - IO perl module perlbase-ipc - 5.20.0-6 - IPC perl module perlbase-less - 5.20.0-6 - less perl module perlbase-list - 5.20.0-6 - List perl module perlbase-locale - 5.20.0-6 - Locale perl module perlbase-math - 5.20.0-6 - Math perl module perlbase-memoize - 5.20.0-6 - Memoize perl module perlbase-mime - 5.20.0-6 - MIME perl module perlbase-module - 5.20.0-6 - Module perl module perlbase-mro - 5.20.0-6 - mro perl module perlbase-net - 5.20.0-6 - Net perl module perlbase-next - 5.20.0-6 - NEXT perl module perlbase-o - 5.20.0-6 - O perl module perlbase-opcode - 5.20.0-6 - Opcode perl module perlbase-open - 5.20.0-6 - open perl module perlbase-ops - 5.20.0-6 - ops perl module perlbase-package - 5.20.0-6 - Package perl module perlbase-params - 5.20.0-6 - Params perl module perlbase-perl5db - 5.20.0-6 - perl5db perl module perlbase-perlio - 5.20.0-6 - PerlIO perl module perlbase-pod - 5.20.0-6 - Pod perl module perlbase-posix - 5.20.0-6 - POSIX perl module perlbase-re - 5.20.0-6 - re perl module perlbase-safe - 5.20.0-6 - Safe perl module perlbase-scalar - 5.20.0-6 - Scalar perl module perlbase-sdbm-file - 5.20.0-6 - SDBM_File perl module perlbase-search - 5.20.0-6 - Search perl module perlbase-selectsaver - 5.20.0-6 - SelectSaver perl module perlbase-selfloader - 5.20.0-6 - SelfLoader perl module perlbase-sigtrap - 5.20.0-6 - sigtrap perl module perlbase-socket - 5.20.0-6 - Socket perl module perlbase-sort - 5.20.0-6 - sort perl module perlbase-storable - 5.20.0-6 - Storable perl module perlbase-symbol - 5.20.0-6 - Symbol perl module perlbase-sys - 5.20.0-6 - Sys perl module perlbase-term - 5.20.0-6 - Term perl module perlbase-test - 5.20.0-6 - Test perl module perlbase-text - 5.20.0-6 - Text perl module perlbase-thread - 5.20.0-6 - Thread perl module perlbase-threads - 5.20.0-6 - threads perl module perlbase-tie - 5.20.0-6 - Tie perl module perlbase-time - 5.20.0-6 - Time perl module perlbase-unicode - 5.20.0-6 - Unicode perl module perlbase-unicore - 5.20.0-6 - unicore perl module perlbase-universal - 5.20.0-6 - UNIVERSAL perl module perlbase-user - 5.20.0-6 - User perl module perlbase-utf8 - 5.20.0-6 - utf8 perl module perlbase-version - 5.20.0-6 - version perl module perlbase-xsloader - 5.20.0-6 - XSLoader perl module yate-scripts-perl - 5.4.0-1-4 - Perl module for Yate

colindean commented 8 years ago

I admit that I don't know Perl very well at all, but I don't see anything in the script that jumps out at me as being something that won't work on Perl 5.20.

jasonkhanlar commented 8 years ago

https://github.com/openwrt/packages/tree/4b50d1aae06eb00ad25d783664fb30572d7274e2/lang indicates that php, python, perl, ruby, erlang and lua are available scripting languages in openwrt environment