Dump perl structures to JavaScript; think Data::Dumper. Example 1: use Data::JavaScript::LiteObject; while( @user = getpwent() ){ $users{$user[0]} = { uid=>$user[2], gid=>$user[3], real=>$user[6], home=>$user[7], shell=>$user[8]}; } Ouput 1: print jsodump(protoName=>"user", dataRef=>\%users); function user (gid, home, real, shell, uid) { this.gid = gid; this.home = home; this.real = real; this.shell = shell; this.uid = uid; } adm = new user(4, '/var/adm', 'adm', '', 3 ); bin = new user(1, '/bin', 'bin', '', 1 ); daemon = new user(2, '/sbin', 'daemon', '', 2 ); ftp = new user(50, '/home/ftp', 'FTP User', '', 14 ); games = new user(100, '/usr/games', 'games', '', 12 ); gopher = new user(30, '/usr/lib/gopher-data', 'gopher', '', 13 ); halt = new user(0, '/sbin', 'halt', '/sbin/halt', 7 ); lp = new user(7, '/var/spool/lpd', 'lp', '', 4 ); mail = new user(12, '/var/spool/mail', 'mail', '', 8 ); msql = new user(18, '/web/msql', 'SQL Guru', '/bin/tcsh', 18 ); news = new user(13, '/var/spool/news', 'news', '', 9 ); nobody = new user(99, '/', 'Nobody', '', 99 ); operator = new user(0, '/root', 'operator', '', 11 ); root = new user(0, '/root', 'BOFH', '/bin/bash', 0 ); shutdown = new user(0, '/sbin', 'shutdown', '/sbin/shutdown', 6 ); sync = new user(0, '/sbin', 'sync', '/bin/sync', 5 ); uucp = new user(14, '/var/spool/uucp', 'uucp', '', 10 ); www = new user(16, '/web', 'World Wide Web daemon', '', 16 ); Example 2: print jsodump(protoName=>"user", explode=>1, lineIN=>4, listObjects=>"users", dataRef=>\%users); Output 2: // 5 function user (gid, home, real, shell, uid) { this.gid = gid; this.home = home; this.real = real; // 10 this.shell = shell; this.uid = uid; } adm = new user( // 15 4, '/var/adm', 'adm', '', // 20 3 ); bin = new user( 1, / 25 '/bin', 'bin', '', 1 // 30 ); daemon = new user( 2, '/sbin', // 35 'daemon', '', 2 ); ftp = new user( // 40 50, '/home/ftp', 'FTP User', '', 14 // 45 ); games = new user( 100, '/usr/games', // 50 'games', '', 12 ); gopher = new user( // 55 30, '/usr/lib/gopher-data', 'gopher', '', 13 // 60 ); halt = new user( 0, '/sbin', // 65 'halt', '/sbin/halt', 7 ); // 70 lp = new user( 7, '/var/spool/lpd', 'lp', // 75 '', 4 ); mail = new user( // 80 12, '/var/spool/mail', 'mail', '', // 85 8 ); msql = new user( 18, // 90 '/web/msql', 'SQL Guru', '/bin/tcsh', 18 // 95 ); news = new user( 13, '/var/spool/news', // 100 'news', '', 9 ); nobody = new user( // 105 99, '/', 'Nobody', '', 99 // 110 ); operator = new user( 0, '/root', // 115 'operator', '', 11 ); // 120 root = new user( 0, '/root', 'BOFH', // 125 '/bin/bash', 0 ); shutdown = new user( // 130 0, '/sbin', 'shutdown', '/sbin/shutdown', // 135 6 ); sync = new user( 0, '/sbin', // 140 'sync', '/bin/sync', 5 ); // 145 uucp = new user( 14, '/var/spool/uucp', 'uucp', // 150 '', 10 ); www = new user( // 155 16, '/web', 'World Wide Web daemon', '', 16 // 160 ); users = new Array( 'adm', 'bin', // 165 'daemon', 'ftp', 'games', 'gopher', // 170 'halt', 'lp', 'mail', 'msql', // 175 'news', 'nobody', 'operator', 'root', // 180 'shutdown', 'sync', 'uucp', 'www');