#!/usr/bin/perl -w use threads; use threads::shared; use Carp; my %Contracts :shared; # hash holding allowed connections my $key; &createContract; my $monitor_thr = threads->create( \&createContract ); my $res1 = $monitor_thr->join(); #==================================================================== sub createContract { $key = "123456789"; # If you want to share a newly created reference unfortunately # you need to use "&share([])" and "&share({})" syntax due to # problems with Perl's prototyping. # man page $Contracts{$key} = &share([100,200,300,400]); printf (" %s %u^%u^%u^%u^\n", $key, $Contracts{$key}[0], $Contracts{$key}[1], $Contracts{$key}[2], $Contracts{$key}[3], ); } ----------------------- # [oldcode]# perl minThreadHash # printf (...) interpreted as function at minThreadHash line 28. # Use of uninitialized value in printf at minThreadHash line 28. # Use of uninitialized value in printf at minThreadHash line 28. # Use of uninitialized value in printf at minThreadHash line 28. # Use of uninitialized value in printf at minThreadHash line 28. # 123456789 0^0^0^0^ # Use of uninitialized value in printf at minThreadHash line 28. # Use of uninitialized value in printf at minThreadHash line 28. # Use of uninitialized value in printf at minThreadHash line 28. # Use of uninitialized value in printf at minThreadHash line 28. # 123456789 0^0^0^0^