my question is :
@clk_array = %clock_sheet
print "@clk_array\-name\n";
i'm getting the output error as follows:
1)@clk_array having the same elements twice
example: clk1 clk1 clk2 clk2 clk3 clk3 ...........
it has to be clk1 clk2 clk3 .........
2)the extension _name is coming for the last element only
i want the extension for all the elements
eg:clk1_name clk2_name clk3_name
| [reply] |
I think McA pretty much got it nailed. Let me tell you what is going on.
- @clk_array = %clock_sheet; will flatten the hash as a list in the form (key1, value1, key2, value2, ...). You either want just the keys, or just the values. For which, duh, keys and values could be very useful. Like:
@clk_array = keys %clock_sheet;
or
@clk_array = values %clock_sheet;
- You magically expect "@clk_array\-name" to distribute the suffix "-name" across each element. But instead the string will take each value from the array, and join them with the current value of $" which is a space by default, and then append the suffix to the whole.
To distribute the suffix over every element, you can use map:
@clk_with_suffix = map "$_-name", @clk_array;
| [reply] [d/l] [select] |
A ++ for the explanation.
| [reply] |
thanks my issue got solved ....
can u please explain about "map"
| [reply] |
Hmm, we can't see what's in your %clock_sheet. What is 'clk1'. Is it a key or a value or both in %clock_sheet?
Please show us the content of the %clock_sheet. You can achieve that by:
use Data::Dumper;
print Dumper(\%clock_sheet), "\n";
| [reply] [d/l] [select] |
$VAR1 = {
'CLK_DBU' => 'CLK_DBU',
'CLK_IC_LMI0' => 'CLK_IC_LMI0',
'CLK_IC_ODP' => 'CLK_IC_ODP',
'CLK_T2' => 'CLK_T2',
'CLK_T3' => 'CLK_T3',
'CLK_DIRT' => 'CLK_DIRT',
'CLK_T1' => 'CLK_T1',
'CLK_CPU_SYS' => 'CLK_CPU_SYS'
};
| [reply] |