#!/usr/local/bin/perl -w use Inline C; use strict; foreach( @ARGV ) { my( @stuff ) = readdir_inode($_); foreach(@stuff) { foreach( @$_ ) { print $_, " "; } print "\n"; } } __END__ __C__ #include #include #include void readdir_inode ( char *dirname ) { struct dirent *ent; DIR *dir; SV *record[2]; AV *entry, *ret_val; Inline_Stack_Vars; Inline_Stack_Reset; dir = opendir(dirname); if( dir ) { while( ent=readdir(dir) ) { record[0] = newSVpv(ent->d_name, 0 ); record[1] = newSViv((IV)ent->d_ino); Inline_Stack_Push(newRV_noinc((SV*)av_make(2,record))); } closedir(dir); } Inline_Stack_Done; }