In Kriat Shema, what is the difference between the straight vertical line and the hyphen between the words.
The hyphen between words indicates words that are read together, and implies the same meaning as hyphenated words in the English language [hyphens do not appear in the Torah itself, but parts of the mesores (tradition) on how the words are read includes ‘hyphenation’].
Vertical lines, in most siddurim, indicate the need to place a momentary break between words, so that one word is not swallowed by the other. The classic cases for this is a vertical line between two words in which the first letter of the second is the same as the last letter (or syllable) as the first, or where the first letter of the second runs on smoothly from the last of the first. The printers insert the lines to help readers know when a short pause should be inserted, to avoid reading two words as though they were one.
Sources: See Orach Chaim 62, and Mishnah Berurah, where the importance of pronouncing the words of Krias Shema carefully is stressed. The vertical lines assist one to fulfill this precept.