Здесь просто приведем текст программы с комментариями:

print "Задайте число: ";
$row=<STDIN>;

# Печать первой строки.
for ($i=0;$i<$row-1;$i++) { print " ";}
print "1\n";
if ( $row > 1 ) # Если есть еще строки.
{
  @mas1=(1,1); # Формируем массив второй строки.
  $kol=2;      # Количество элементов в строке.
  for ($i=1;$i<$row;$i++) # Цикл для вывода текущей строки.
  { 
    # Вывод начальных пробелов.
    # Если $row равно, например, 5, то количество 
    # начальных пробелов равно 4.
    for ($j=0;$j<$row-$i-1;$j++) { print " "; }
    # Вывод элементов текущей строки.
    for ($j=0;$j<$kol;$j++) { print $mas1[$j]; print " "; }
    print "\n"; # Переход на следующую строку.
    # Формируем массив элементов следующей строки
    # и помещаем в массив @mas2.
    $mas2[0]=1;
    for ($j=1;$j<$kol;$j++)
       { $mas2[$j]=$mas1[$j-1]+$mas1[$j]; }
    $mas2[$kol]=1;
    # Копируем созданный массив в массив @mas1.
    for ($j=0;$j<=$kol;$j++) { $mas1[$j]=$mas2[$j]; }
    # Увеличиваем количество элементов в строке на 1.
    ++$kol;
  }
}
Текст этой программы можно взять здесь.