Мое очень простое и основное мнение об этом - то, что таблицы там для табличных данных - не для расположения одной вещи на вершине или рядом с другим элементом, потому что Вам, оказывается, нравится он являющийся там.
Так - если Вы хотите отобразить таблицу данных: сделайте так (с таблицей). Если Вы хотите расположить содержание на странице: используйте css.
У вас есть несколько ошибок в вашей программе:
my @my_array = ("aa" , "bbb");
$my_hash{"Kunjan"} = \@my_array;
print $my_hash{"Kunjan"}[0];
Я внес три изменения:
мой
перед @my_array
на первая строка [...]
на (...)
в первой строке \
перед @my_array во второй строке Синтаксис вашего массива неверен. Вы создаете ссылку на анонимный список, а @my_array
представляет собой одноэлементный список, содержащий эту ссылку.
Вы можете правильно работать со ссылкой, как скаляр:
$my_array = ["aa" , "bbb"];
$my_hash{"Kunjan"} = $my_array;
Или вы можете работать со списком в виде списка, создавая ссылку только при помещении ее в хэш:
@my_array = ("aa" , "bbb");
$my_hash{"Kunjan"} = \@my_array;
Другие уже хорошо объяснили, что к чему, но я хотел бы добавить, что (особенно если вы новичок в Perl), было бы здорово, если бы вы потратили немного времени и прочитали perldsc и perllol документы.
Если бы вы поместили это только в начало вашего скрипта:
use strict;
use warnings;
... вы бы получили несколько сообщений об ошибках, указывающих, что было не так:
Global symbol "@my_array" requires explicit package name at kunjan-array.pl line 8.
Global symbol "@my_array" requires explicit package name at kunjan-array.pl line 11.
Итак, сначала объявите массив с помощью my @my_array;
, и тогда вы получите:
Can't use string ("1") as an ARRAY ref while "strict refs" in use at kunjan-array.pl line 14.
$ my_hash {"Kunjan"} -> [0]
- снова см. perldoc perlref , чтобы узнать, как разыменовать хэш-ссылку Это зависит от языка.
Тексты C ++ часто предлагают второй формат будет работать с итераторами, которые можно сравнивать (! =) напрямую, но не с условием больше или меньше. Также предварительное приращение может быть быстрее, чем последующее приращение, поскольку нет необходимости в копии переменной для сравнения, однако оптимизаторы могут с этим справиться.
Для целых чисел работает любая форма. Обычная идиома для C - первая, а для C ++ - вторая.
Для C # и Java я бы использовал foreach, чтобы перебирать все вещи.
В C ++ также есть std :: существуют определенные параметры схемы, которые они не улавливают, например значения столбцов по умолчанию, что заставляет вас вручную изменять параметр. Это может привести к потере часов каждый раз, когда вы обновляете DBML, не осознавая или не запоминая, где вам нужно внести ручные настройки, и ваш код начинает давать сбой.
Чтобы избежать этого, можно написать модульный тест, который использует отражение для проверьте метаданные LINQ для этих (ручных) настроек. Если тест не проходит, выдается описательное сообщение об ошибке, инструктирующее пользователя внести правильные изменения в свойства столбца. Это не идеальное решение, и оно может быть неудобным, если у вас много ручных настроек, но оно может помочь избежать некоторых серьезных проблем для вас и вашей команды.
Вот пример nunit-теста, чтобы проверить, установлен ли столбец для автоматического создания из БД.