Associative-array examples from Inline::SLang
The following code and examples can be found in the Inline::SLang distribution available from CPAN. The output was created using version 1.00 of the module, using the PDL support, together with version 1.4.9 of the S-Lang library.
S-Lang associative arrays are converted to hash references in Perl, as shown below. The datatypes example page may also be useful. The support for associative arrays is described in the Inline::SLang::Assoc documentation that comes with the module.
A simple example
use Inline 'SLang'; # you can send hash references to S-Lang print_in_slang( { a => 23, "b b" => "foo" } ); # and get them back from S-Lang $href = get_from_slang(); print "The assoc array contains:\n" . join( "", map { "\t$_ => $$href{$_}\n"; } keys %$href ); __END__ __SLang__ define print_in_slang (assoc) { message( "SLang thinks you sent it an assoc. array with:" ); foreach ( assoc ) using ( "keys", "values" ) { variable k, v; ( k, v ) = (); vmessage( " key %s = %S", k, v ); } } define get_from_slang() { variable x = Assoc_Type [String_Type]; x["a key"] = "a value"; x["another key"] = "another value"; return x; }
which, when run, produces
SLang thinks you sent it an assoc. array with: key a = 23 key b b = foo The assoc array contains: another key => another value a key => a value