请教一个函数的问题

请教一个函数的问题

请教一个函数的问题
写了一个函数,调用的时候输入为一个数组和一个变量。
有一句代码不使用函数时是这样的:
map {push (@bf1,[$end_ecg2f[$_],$end_ecg2f[$_+1],$end_ecg2f[$_+2]])} (0..$len_raf);
希望在函数调用时,输入变量代替上句中的@end_ecg2f 和 $len_raf。
调用函数时:amp(@aa,$bb);
函数中该句写成这样:
sub amp{
...
map {push (@bf1,[$_[0][$_],$_[0][$_+1],$_[0][$_+2]])} (0..$_[1]);
...}

但是结果不对,给怎么样给函数传两个变量呢?
1>先从后面弹出$bb的值,剩下的就是@aa
2>原则上传递数组或者哈希数组,最好使用引用(推荐使用这种方法)

以上仅仅是思路,具体代码自己写
给子程序传递参...
给子程序传递参数时,除非只有一个参数,
否则数组一律用数组引用,哈希表一律用哈希表引用。